所以我必须使用'<'从命令行读取txt文件。运营商。
例如我在终端的可执行文件是:
。\ file book1.csv output.csv< find.txt
book1.csv是我的argv [1],其中我使用fscanf插入数据,output.csv是根据我的程序编写文件的地方,find.txt是我从txt文件中获取参数以查找它的地方来自book1.csv。
我只允许使用scanf,因为我必须从命令行参数中读取它。
这是我在主函数内部的txt文件中读取的代码,但由于某种原因,它会在无限循环中打印出某种目录。
char key[66];
while((scanf("%[^\n]s ", &key))!= EOF){
printf("%s\n",key);
}
这是txt文件由
组成的 詹姆斯邦德郎 乔伊所以我希望使用我的printf语句逐个打印这三个名字,但它会在我的输出中输出某种目录,并且它是一个无限循环。
答案 0 :(得分:0)
在命令行中使用<
时,程序不应从文件中读取。这意味着,文件流替换stdin
(标准输入流),并且您的程序从键盘读取,例如与scanf
。
问题在于使用scanf
:阅读references了解详细信息以及%s
说明符使用key
没有&
(密钥已经是内存地址) ,并使用&
获取地址会导致内存使用不正确)