gpt4 book ai didi

c - 从txt文件中读取并输入到C中的数组

转载 作者:太空狗 更新时间:2023-10-29 16:01:53 25 4
gpt4 key购买 nike

我有我的txt文件

4  
110
220
112
335

4是行数,4*3是int数。我必须读取“4”然后读取剩余的并将它们输入到数组中

这是我的

void main(){ 
int a,n;
int i=0,j=0,k[30]; //
int *N;

FILE *fp = fopen("test.txt", "r");
if(fscanf(fp, "%d", &a) != 1) { //
// something's wrong
}

n=3*a; //3*a numbers in the file
N = malloc(3 * a * sizeof(int));
for(i = 0; i <n;++i) {
int result=fscanf(fp, "%d", &N[i] );
}
fclose(fp);
for(j=0;j<3*a;j++){
k[j]=N[j];
}

printf("%d",k[0]);
}

当我打印 k[0] 时,它应该打印“1”,但打印了整行“110”

还有其他方法吗???

最佳答案

格式说明符 %d 没有指定长度,因此 fscanf 将读取尽可能多的数字;这就是为什么您得到 110 而不是 1。

如果你指定一个长度,比如 %1d,它只会读取你告诉它的数字:

for(i = 0; i <n;++i) {
int result=fscanf(fp, "%1d", &N[i] );
}

关于c - 从txt文件中读取并输入到C中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20803264/

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