strcat不工作,每次都格式化字符串

时间:2017-11-15 11:34:38

标签: c string while-loop strcat

这是一个更大的计划的一部分,但我发现它是超级越野车,完全不正确 这是该计划:

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


int main(int argc, char const *argv[])
{
    char term_command[500];
    char fname[20];
    FILE *fp;

    //open list of files
    fp = fopen("list.txt", "r+");

    //check 
    if(fp == NULL){
        fprintf(stderr, "ERROR OPENING FILE list.txt\n");
        exit(EXIT_FAILURE);
    }

    strcpy(term_command, "sort -m -n ");
    printf("com: %s\n", term_command);

    while(fscanf(fp, "%s", fname) != EOF){
        printf("com: %s\n", term_command);
        if(strcmp(fname, "list.txt") != 0){
            strcat(term_command, fname);
            strcat(term_command, " ");
        }
    }

    strcat(term_command, "-o all_sorted.txt");
    printf("com1: %s\n", term_command);

    return 0;
}

这是我得到的输出

com: sort -m -n 
com: 
com: 
com: 
com: 
com: 
com: 
com: -o all_sorted.txt

我不明白为什么字符串fname没有附加到term_command字符串,以及为什么term_command字符串在我进入while循环时为空。

编辑:

这是文件&#34; list.txt&#34;

的示例
f0
f1
f2
f3
f4
f5
list.txt

我将fname大小更改为20但没有改变

0 个答案:

没有答案