这是一个更大的计划的一部分,但我发现它是超级越野车,完全不正确 这是该计划:
#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但没有改变