我想用C语言编写一个简单的程序,它将在while循环中获取10个字符串用户输入并将其存储到food.txt文件中。但是每当我尝试再次将用户输入存储到变量inputFood时,就会出现问题。它还在“ strcpy(&allFood,inputFood);”处发送错误。线程1:信号SIGABRT。有人可以帮忙吗?
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main() {
int i = 0;
printf("Hello World!\n");
char * inputFood;
char allFood = {0};
FILE * fPointer;
fPointer = fopen("/Users/Antonio/Desktop/food.txt", "a");
while (i < 10){
i = i + 1;
scanf("%s", inputFood);
strcpy(&allFood, inputFood);
}
fputs(&allFood, fPointer);
fclose(fPointer);
}
最佳答案
为inputFood分配内存,例如100个字符:
inputFood = malloc(100);
并将allFood设置为数组,而不是char:
char allFood[1000];
因此,您将需要像这样使用strcat而不是strcpy:
strcat(allFood, inputFood);
然后像这样扫描输入的食物:
scanf("%99s", inputFood);
关于c - 多个输入到一个字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26253295/