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+"

読みたいだけの場合は、モードを使用してください"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 に答える