0

我尝试使用 freopen ("inputString.txt","r",stdin); 将输入发送到标准输入。如果我在 Eclipse 中运行程序,则输出为 xxx,但如果我直接运行程序(在没有 Eclipse 的情况下编译后运行 *.exe),则输出为 goodxxx

该文本文件与 eclipse 项目中的 *.exe 位于同一目录中。我怎样才能解决这个问题。这是我的一些源代码。

 int main() {
int debug = 1,width,height;
char s[1000];
freopen ("inputString.txt","r",stdin);

s[0]='x';
scanf("%s",s);
printf("%s",s);
printf("xxx")for(;;);;

return 0;}

inputString.txt 包含

好的

4

3 回答 3

2

检查启动配置中的当前目录,确保它是您所期望的。您还可以使用从程序中获取和打印当前目录以查看您的位置。

于 2012-05-04T01:54:31.957 回答
0

只需将文件放在项目的根目录中即可。

于 2012-05-07T05:51:13.753 回答
0
test
|___Binaries
|___Included
|___src
    |__test.cpp
    |__input.txt
|___Debug
|___Release

如果这是您的 Eclipse C++ 项目结构,那么要访问test.cpp中文件input.txt的内容,您需要编写

freopen("src/input.txt", "r", stdin);

“测试”是根目录

于 2020-12-01T21:06:46.283 回答