我正在尝试创建一个接受用户输入的程序,并在.csv文件中搜索所有匹配的结果。我想要做的是输出.csv文件中与用户搜索匹配的所有字符串。现在它会提示用户输入搜索,但无论输入什么字符串,输出总是相同的。
这是我目前的代码
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp=fopen("file.csv","r+");
char buf[1000];
char str[25];
printf("Enter your search:");
scanf ("%s", str);
while(fgets(buf, sizeof(buf),fp)!= NULL)
{
if (strstr(buf, "str")){
printf("%s\n", buf);
}
}
fclose(fp);
}
答案 0 :(得分:1)
好吧,目前您只搜索"Salmon"
,而不是用户的输入。
在任何情况下,您都为文件打开模式指定了无效标志...
如果您要阅读和写入文件,请使用"r+"
,"w+"
或"a+"
。
如果您只想阅读,请使用模式"r"
。
答案 1 :(得分:1)
在最近的编辑中,代码在str变量周围有双引号需要删除
if (strstr(buf, "str")){
应该是
if (strstr(buf, str)){
答案 2 :(得分:0)
如果是.csv文件。如果你能在&#34; r +&#34;中打开它会很棒。模式。 在你的情况下它应该是。
FILE *fp=fopen("file.csv","r+");
r +和w +我们都可以读取,写入文件但是r +不会截断(删除)文件的内容,如果这样的文件没有退出而没有创建新文件,而在w +截断内容文件以及如果此文件不存在则创建新文件