我必须像这样从 .txt 中读取(1.-txt 行)
- 1 2
- 1 2 3
- 1 3 4
但我必须这样读:“1”第一行,属性为 x[0]
,“2”第一行属性为 x[1]
。我知道该怎么做,但问题是我必须跳到第 2 行并执行相同的操作,但它不起作用。
所以就像
x[2]=1。 x[2]=2, x[3]=3, x[4]=1, x[5]=3, x[6]=4
我有办法吗???
谢谢!
让我尝试更具体一些
- 1 2 1
- 2 3 1
- 3 4
假设这是一个 txt 文件,其中 3. 2. 和 1. 是第一行、第二行和第三行。我必须读取每一行的每个数字并分配给 vet[MAX]
;
我能做到,但只能用第一行。不知道怎么跳到第二个
我的代码
#include <stdlib.h>
int main (void)
{
char buf[1024];
int numeros[8];
FILE *fp = fopen("teste.txt", "r");
if(fp == NULL)
return EXIT_FAILURE;
while(fgets(buf, sizeof(buf), fp)) {
if(buf[0] == '\n')
continue;
sscanf(buf, "%d %d %d %d %d %d %d", &numeros[0], &numeros[1], &numeros[2], &numeros[3],&numeros[4], &numeros[5], &numeros[6]);
}
fclose(fp);
printf(" \n %d \n %d \n %d \n %d \n %d \n %d \n %d", numeros[0], numeros[1], numeros[2], numeros[3],numeros[4], numeros[5], numeros[6]);
the output
3 4个 1个 131072 2685712 302692880 4798692 进程返回 53 (0x35) 执行时间:0.016 秒 按任意键继续。
我想要
1 2 2 1 2 3 1 3 4
最佳答案
假设你对 x[2]
的双重使用是一个拼写错误,并且假设行号不在文件中,你只需要循环执行:
fscanf(file, "%d", &x[i++]);
直到失败。因此请记住检查返回值,如果它不是 1,则无法找到要转换和存储的数字,您应该停止。
当然,这里假设x
有足够的空间,并且i
初始化为0。
关于c - 如何在 C 中读取 .txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427998/