2017-05-30 23 views
0

CSVファイルを読み込み、入力された単語をファイルに基づいて検索し、その単語を含む行を返すプログラムを作成しようとしています。 CSVファイルには、ツイートの質量でダウンロードし、次の列があります。C++入力された文字列からCSVファイルを検索する

  • ザ・ツイート

ツイートはここにも「そうだろうb'TWEETのTEXTに囲まれているを作成し&時間をプリントアウト時にb "を取り除く必要があります。私は悲しいことにCSVファイルと何かを変更することはできませんので、手動で削除することはできません。私が午前問題は、次のとおりです。ファイル内のツイートの総量をリスト

  1. プログラムは単に「取り外しb
  2. をフリーズ "ツイート
  3. からelse文がする『が見つかりません』原因常に印刷されています

コード私は現在、入力された単語だけでなく偽陽性を含むつぶやきを返しています。

The current output when running the below code

電流出力以下のコード

#include "stdafx.h" 
#include <cstring> 
#include <fstream> 
#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    string token; 
    ifstream fin; 
    fin.open("sampleTweets.csv"); 

    if (fin.is_open()) 
    { 
     cout << "File opened successfully" << "\n"; 
    } 
    else { 
     cout << "Error opening file" << "\n"; 
    } 

    cout << "Enter search word: "; 
    cin >> token; 
    "\n"; 

    string line; 
    while (getline(fin, line)) { 
     if (line.find(token) != string::npos) { 
      cout << line << endl; 
     } else { 
     cout << token << " not found" << endl; 
    } 
    } 

    fin.close(); 
    char anykey; 
    cout << "press any key"; 
    cin >> anykey; 
    return 0; 

} 

私はかなりだとして、この上の任意のヘルプは素晴らしいだろう総ツイート

int count = 0; 
char str[140]; 

while (!fin.eof()) 
{ 
    fin.getline(str, 140); 
    count++; 
} 

cout << "Number of lines in file are " << count; 

をカウントするために使用したコードを実行していますC++の新機能で、ここからどこに行くのかわからない!

+1

なぜあなたは無条件に 'cout << token <<"が見つからないのですか "<< endl;'? – NathanOliver

+0

ああ、それはいつもそれをプリントアウトしているという事実を説明するでしょう。 –

+0

cin >> token; "\ n";私はあなたがここで達成しようとしていることを確信していませんが、間違っています。 – willll

答えて

0

あなたは削除することができます"b"eraseと:

if (line.find(token) != string::npos){ 
    int n= line.find(","); 
    line.erase(n+1, 3); 
    cout << line << endl; 
} 

、あなたはwhileループ内の行カウントすることができます:

int count = 0; 
while (getline(fin, line)) { 
    ++count; 
    ... 
} 

EDIT:あなたのような余分な引用符とカンマを削除することができますがso:

line[n] = ' '; // change comma int space 
line.erase(n+1, 4); // remove "b"" 
line.resize(line.size()-5); // remove trailing """,, 
+0

しかし、まだコンマがたくさんありますが、「削除するのが理想的です」と出力してくれてありがとうございます。現在のところ、この出力は[Gyazoキャプチャ](https://gyazo.com/b300b0a56d3dce221b5250351d9783dc) –

+0

@KaiJones:だから私は出力行について尋ねた。 – Beta

+0

私は以前私の間違いを答えていたと思って申し訳ありませんでした。それがあるべき時でも走った? –

関連する問題