gpt4 book ai didi

c - 从文件中读取;无法创建进程

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:21 28 4
gpt4 key购买 nike

这是我的代码:

#include<stdio.h>

void main()
{
FILE *fp;
fp=fopen("text.txt","r");
if(fp==NULL)
printf("ahaha");

struct karan{
int index;
int number;
char string[10];
};

struct karan first;

fscanf(fp,"%d %d %s",first.index,first.number,first.string);
printf("%d %d %s",first.index,first.number,first.string);
}

如果我的文本文件包含

1 123 卡兰
2 1234 哈哈

当我编译它说的代码时
可能使用 first before definition。

并运行它所说的代码
无法创建进程!
我做错了什么?

最佳答案

您需要将 & 运算符与 fscanf 一起使用。

fscanf(fp,"%d %d %s",first.index,first.number,first.string); /* Wrong. */
fscanf(fp,"%d %d %9s", &first.index, &first.number, first.string); /* Right. */
^

否则,您会将 first 中的垃圾视为地址,并会导致未定义的行为。另外,请注意 first.string 的格式。

有一个C FAQ

Why doesn't the call scanf("%d", i) work?

The arguments you pass to scanf must always be pointers: for each value converted, scanf ``returns'' it by filling in one of the locations you've passed pointers to.

关于c - 从文件中读取;无法创建进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037293/

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