我在C中尝试I / O重定向;我重定向标准输入,以便我可以在控制台上打印包含在txt文件中的数字。
int main() {
int number;
scanf("%d", &number);
printf("The number is %d.", number);
}
在Xcode中,我转到Products文件夹,然后双击可执行文件以启动控制台。我发出这一行:
./main.c < number.txt
控制台打印出一个数字,但不是正确的数字。如果您愿意,请下载此简单项目here。我在这里做错了什么?
更新
CSV
文件相同的问题; scanf()
的返回值,它等于0. 4
(我最近将其更改为5
),但shell的输出为The number is 1726119990.
答案 0 :(得分:1)
看起来你正在做一些启动你的程序并得到一个空白行(这是从stdin读取scanf()
)然后你写./main.c < number.txt
这意味着你没有管道将值带入程序,而scanf正在读取字符串,因为它没有找到数字,所以它返回0。
您需要做的是创建一个控制台窗口,以便在前面看到$,然后转到exe所在的目录并写入./main < number.txt