- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[C++].csvファイルからキーワード検索)
[C++] Read CSV File and Search for Keywords
このQ&Aのポイント
- I want to create a function in C++ for reading a .csv file or a space-separated data file and searching for specific keywords in a specified column. If a keyword is found, I want to return the data in another column of the same row. I am using C++ on LINUX and cannot use VC++ special functions.
- I am facing a segmentation error when passing the input as a string to the find_keywords function. Previously, when I passed the input as a char* in C, it worked fine. Can you help me understand what might be causing this error?
- Here is the code I have written: ```cpp void find_keywords(std::string words, std::string& result) { while (reaching the end of the file) { while (finding a comma) { if (keywords match) { result = specified column; } } } } main() { std::string input; std::string result; std::cin >> input; find_keywords(input, result); std::cout << result; } ``` I would appreciate any help or suggestions to resolve this issue.
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
printf は与えたものを「直ちに」出力するとは限らないので, それだけでは「find_keywords()を呼び出した瞬間にエラーになっている」とまでは言い切れません. でちょっと試していただきたいのですが, #include <string> #include <cstdio> #include <iostream> using namespace std; void find_keywords(string words) { printf("OK\n"); fflush(stdout); cout << words << endl << flush; } int main() { string input; cin >> input; find_keywords(input); cout << input << endl << flush; return 0; } だとどうなるんでしょうか? これと printf のところを cout << "OK\n" << flush; に変えたものとを比較すると何かが見えてくるかもしれません.
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
「inputを渡すときsegmentation errorとなってしまいます。」ということですが, もっと厳密に「ここでエラーになる」というのはわかりませんか?
補足
find_keywords()を呼び出した瞬間にエラーになっていると思います。 find_keyword(std::string words) { printf("OK"); } としても何も表示されませんので・・・ errorではなくsegmentation faultでした。