gpt4 book ai didi

c - 不通过命令行写入文本文件

转载 作者:行者123 更新时间:2023-11-30 16:24:07 24 4
gpt4 key购买 nike

我正在尝试创建一个程序,它将用户输入的年龄、名字和姓氏保存在文本文件中,但它不会写入通过命令行输入的文本文件。文件名被视为命令行参数。当用户输入年龄 0 时,我的循环应该结束。

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

int main (int argc, char *argv[])
{
char fname[30], lname[30];
int age;

FILE *fp;

fp = fopen (argv[1], "r");

if (fp == NULL) {
printf("No file\n");
return 0;
}

printf("This program reads and saves ages and names in a text file.\n");

do {
printf("Enter person (age, first last): ");
scanf("%d, %s %s", &age, fname, lname);
fprintf(fp, "%d, %s %s", age, fname, lname);
} while (age > 0);



fclose (fp);

return 0;
}

最佳答案

如果文件不存在,则当您以读取模式打开时,打开将失败。当发生这种情况时,它不会检查打开是否成功,因此您之后使用它(NULL)将导致段错误。

你也提到了循环,但是这里没有循环。您也不检查有效输入

关于c - 不通过命令行写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53711624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com