从文件c编码打印下一行

时间:2012-05-19 19:00:11

标签: c file

我的代码是这样的。我正在读取一个文件,将用户输入的单词与文件中的数据进行比较,然后想要从文件中打印下两个单词。我怎么能这样做?

        #include <stdio.h>
        #include <string.h>
        int main()
        {
           //Open the file for reading
                    FILE *in = fopen("data.txt", "r");
           char str[]="file1.txt";
           //fgets buffer
           char buffer[100];

         //Pieces of string tokenized
        char * stringPiece;

         //int for comparing strings
           int compare=2;


        //While loop. Getting lines from file
        while ( fgets(buffer, sizeof(buffer), in) != NULL ){
             fgets(buffer, 100, in);
            // printf("%s\n", buffer);

         stringPiece = strtok (buffer,",");
             while (stringPiece != NULL){


          printf("%s\n",stringPiece);
          compare=strcmp(stringPiece,str);

          if (compare==0){printf("HELP");}

          //printf("%s\n",stringPiece);
          stringPiece = strtok (NULL, " ");
      }
   }
         //Close file
                fclose(in);

                       return 0;
}

我可以在文件中找到与用户输入的相同但无法从文件中打印下两个单词的单词。文件名是data.txt。

格式化的代码清晰易懂(主要使用vim函数的开括号上的=%main()

#include <stdio.h>
#include <string.h>

int main(void)
{
    //Open the file for reading
    FILE *in = fopen("data.txt", "r");
    char str[]="file1.txt";
    //fgets buffer
    char buffer[100];

    //Pieces of string tokenized
    char * stringPiece;

    //int for comparing strings
    int compare=2;

    //While loop. Getting lines from file
    while ( fgets(buffer, sizeof(buffer), in) != NULL ){
        fgets(buffer, 100, in);
        // printf("%s\n", buffer);

        stringPiece = strtok (buffer,",");
        while (stringPiece != NULL){

            printf("%s\n",stringPiece);
            compare=strcmp(stringPiece,str);

            if (compare==0){printf("HELP");}

            //printf("%s\n",stringPiece);
            stringPiece = strtok (NULL, " ");
        }
    }
    //Close file
    fclose(in);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

找到单词的样本和接下来的两个单词得到

#include <stdio.h>
#include <string.h>

int main() {
    char userInputWord[]="file1.txt";
    char readFromFileData[]="c:,file1.txt,date,size";
    char *tokenPtr,*nextFirstWord,*nextSecondWord;

    tokenPtr=strtok(readFromFileData, ",");
    for(;tokenPtr != NULL;tokenPtr=strtok(NULL, ",")){
        if(0!=strcmp(tokenPtr, userInputWord))
            continue;//skip word
        //find it!
        printf("%s\n",tokenPtr);
        nextFirstWord = strtok(NULL, ",");
        nextSecondWord = strtok(NULL, ",");
        if(nextFirstWord)
            printf("first word is \"%s\"\n", nextFirstWord);
        else
            fprintf(stderr,"first word is nothing!\n");
        if(nextSecondWord)
            printf("second word is \"%s\"\n", nextSecondWord);
        else
            fprintf(stderr,"second word is nothing!\n");
    }
    return 0;
}