我试图让我的程序从文件中读取输入,但不跳过 fscanf 通常执行的空行。扫描文件的文件和循环是:
inFile = fopen("text.txt", "r");
for(i = 0; fscanf(inFile, "%s", &input[i]) != EOF; i++){
printf("%d %s\n", i, input[i]);
}
输出:
0 one
1 two
2 three
3 four
4 five
5 six
6 seven
7 eight
8 nine
9 ten
10 eleven
11 twelve
12 thirteen
13 fourteen
14 fifteen
15 sixteen
16 seventeen
17 eighteen
18 nineteen
19 twenty
20 thirty
21 forty
22 fifty
23 sixty
24 seventy
25 eighty
26 ninety
这不是我想要的。我希望读取的文本代表它所说的数组中的位置。即“九十”在输入[89]中找到。
正在读取的文件是:
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
fifteen
sixteen
seventeen
eighteen
nineteen
twenty
thirty
forty
fifty
sixty
seventy
eighty
ninety
这些词中的每一个都应该代表它正在从哪一行读取。我在 20 多行之间添加了空格,所以我可以使用 i 来表示正在读取的数据的行。简而言之,我正在为文本生成器制作一个数字,它将读取
999.99
作为
nine hundred ninety-nine and 99/100
tl;博士我不想硬编码数组中包含单词的位置,所以我试图让迭代器完成工作,这需要读取的空行占据它们在数组中的位置。
有什么办法可以让 fscanf 在这里完成工作吗?还是我应该使用其他东西?
谢谢