- 已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
1小时前关闭。
Improve this question
我需要这个代码的帮助。你看,它接受字符串和整数这样的输入,并将它们保存在两个数组中。这两个数组应该被写入一个名为"Lagerverwaltung. text"的文件中。然而,它只打印了一个0,其他什么都没有打印到文件中。谢谢。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char artnr[50],menge[50],me[50],neu[50],date[50];
int zahl, calcam, id, sub,amount;
int greatlen = 0;
int result = 0;
char str[50][50][50];
int mengen[10];
int a = 1;
int s = 0;
while(a > 0){
FILE* fp;
fp = fopen("Lagerverwaltung.txt", "w");
printf("Geben sie eine Zahl ein:");
scanf("%d", &zahl);
if(zahl == 1){
printf("Geben sie ein:\nArtikelnr.:");
scanf("%s",&artnr);
strcpy(str[s][0],artnr);
printf("Menge:");
scanf("%d",&mengen[greatlen]);
printf("Mengeneinheit:");
scanf("%s",&me);
strcpy(str[s][1],me);
printf("Datum:");
scanf("%s",&date);
strcpy(str[s][2],date);
}
fputs(str[greatlen][0], fp);
fprintf(fp, "%d", mengen[greatlen]);
fputs(str[greatlen][1], fp);
fputs(str[greatlen][2],fp);
fclose(fp);
s =s+1;
greatlen = greatlen +1;
}
return 0;
}
应该有一行整数和字符串写入文件。
1条答案
按热度按时间kdfy810k1#
带
"w"
参数的fopen
打开文件并 * 丢弃现有内容 *。这意味着在每次循环迭代中,您将丢弃之前编写的内容。由于a
永远不会变为0,因此结束程序的唯一选择是中止它,并且您将在程序等待输入时执行此操作。这是在它已经丢弃任何文件内容之后但是在它已经写入新内容之前。可能的修复方法:
"a"
打开文件以附加到它此外,固定字符串扫描线,如
那应该是
每一个优秀的编译器都会警告你。