使用printf

时间:2016-05-16 02:46:31

标签: c arrays c-strings

我从文本文件中取出行并将行存储在数组中。然后我将这些行分成单独的单词并将它们存储在另一个数组中。但我对存储的单词有疑问。

文字文件内容:

 ls -l hahaha

代码:

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

    char *trim (char *s) {
      int i = strlen(s)-1;
      if ((i > 0) && (s[i] == '\n'))
        s[i] = '\0';
      return s;
    }

    int main(int argc, char *argv[]){

        FILE *fp;
        char *output = NULL;
        fp= fopen("ints.txt", "r");
        //fscanf and fprintf is used for files and is same is printf and scanf
        fprintf(fp, "Testing...\n");
        //fgetsc for single character in file and fputc to write
        //
        size_t len = 0;
        ssize_t read;
        const char s[2]=" ";
        char *token;
        char line[256];
        char *lines[10];
        char *eof;
        char *args[10];

        //=====nulling the array lines====
        for(int p=0; p<10; p++)
        {
            lines[p]=NULL;
        }

        int i=0;
        if (fp == NULL)
        {
            exit(EXIT_FAILURE);
        }
        else
        {
            while(fgets(line, 256, fp)!= NULL)
            {
                lines[i] = strdup(line);
                //printf("%s", lines[i]);
                i++;
            }
        }
        fclose(fp);

        int k=0;
        for(int j=0; j<9; j++)
        {
            if(lines[j]!=NULL)
            {
                token =strtok(lines[j], s); //s is the delimmiter
                while(token != NULL)
                {
                    trim(token);
                    //printf("%s\n", token);
                    args[k] = token;
                    token = strtok(NULL,s);
                    k++;

                }
            }
        }
        printf("%s\n",args[0]);
        printf("%s\n", args[1]);
        printf("%s\n", args[2]);
        printf("%s something\n", args[0]);
        printf("%s something\n" , args[2]);  
        printf("program done\n");

    }

输出:

ls  
-l  
hahaha  
ls something    
 something     //the hahaha part dissapears for the last printf**  
program done

0 个答案:

没有答案