【发布时间】:2014-12-29 13:41:01
【问题描述】:
例子:
三个文件
hi.txt
txt 里面:“愿我们成为”
再次.txt
txt里面:“曾经的那些人”
final.txt
txt 内:“知道 C”
然后,另一个名为“order”的文件
order.txt
txt里面:
"hi.txt;6"
"again.txt;7"
"final.txt;3"
我想要什么:读取第一个文件名,打开它,列出内容,等待 6 秒,读取第二个文件名,打开它,列出内容,等待 7 秒,读取第三个文件名,打开它,列出内容,请等待 3 秒。
如果我在不打开内容的情况下执行此操作(您会在我的代码上看到一秒钟)并列出名称,它可以工作,但由于某种原因,当涉及内容时它不会。
orderFile = fopen("order.txt","r");
while(fscanf(orderFile,"%49[^;];%d",fileName,&seconds) == 2)
{
contentFile = fopen(fileName,"r");
while(fscanf(contentFile,"%[^\t]",textContent) == 1)
{
printf("%s\n", textContent);
}
sleep(seconds);
fclose(contentFile);
}
fclose(orderFile);
输出:
愿我们成为
(等待 7 秒)
程序以“RUN SUCCESSFUL”结束
EDIT@
正如你们所说,它现在可以工作了,这就是问题所在:
旧:
while(fscanf(orderFile,"%49[^;];%d",fileName,&seconds) == 2)
新功能:
while(fscanf(orderFile," %49[^;];%d",fileName,&seconds) == 2)
我很难完全理解它,空间有什么作用?不接受输入?空间?究竟是什么?
【问题讨论】:
-
"%49[^;];%d"-->"%49[^;];%d%*c"or" %49[^;];%d"@chux 已经在上一个问题中指出了换行符。 -
空格在扫描数据前跳过所有
\n(换行符)和空格