用户输入.txt文件搜索C.

时间:2012-10-26 04:29:04

标签: c file-io

我正在尝试创建一个接受用户输入的程序,并在.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);
}

3 个答案:

答案 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 +截断内容文件以及如果此文件不存在则创建新文件