0

我正在尝试制作一个接受用户输入并在 .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);
}
4

3 回答 3

1

好吧,目前您只搜索"Salmon",而不是用户的输入。

无论如何,您为文件打开模式指定了无效标志...

如果要读取和写入文件,请"r+"使用"w+""a+".

如果您只想阅读,请使用 mode "r"

于 2012-10-26T04:32:58.080 回答
1

在您最新的编辑中,代码在 str 变量周围有双引号,需要删除

if (strstr(buf, "str")){

应该

if (strstr(buf, str)){
于 2012-10-26T08:42:56.757 回答
0

如果是 .csv 文件。如果你能以“r+”模式打开它会很棒。在你的情况下,它应该是这样的。

FILE *fp=fopen("file.csv","r+");

r+ 和 w+ 我们都可以在文件上读取、写入,但是 r+ 不会截断(删除)文件的内容,如果这样的文件没有退出,它也不会创建新文件,而在 w+ 中也会截断文件的内容如果这样的文件不存在,则创建一个新文件

于 2012-10-26T05:51:15.783 回答