提问人:Kenny Ynnek 提问时间:12/8/2022 更新时间:12/9/2022 访问量:82
C++ - 我的程序停止运行来自 <cstdio> 的“freopen”函数
C++ - my program stops running `freopen` function from <cstdio>
问:
在我的 :main.cpp
#include <cstdio>
#include "hashtable.h"
int main() {
printf("1hello");
freopen("2.txt", "w", stdout);
printf("2hello");
freopen("1.txt", "r", stdin);
printf("3hello");
int type;
char buffer[1000];int data;
hashtable table(10000, new naive_hashing(), new linear_probe());
while (true) {
scanf("%d", &type);
if (type == 0) {
scanf("%s", buffer);scanf("%d", &data);
table.insert(hash_entry(buffer, data));
}
else if (type == 1) {
scanf("%s", buffer);
printf("%d\n", table.query(buffer));
}
else break;
}
return 0;
}
1.txt
:
0 dhu_try 3039
0 shirin 3024
0 SiamakDeCode 2647
0 huanghansheng 233
1 dhu
1 dhu_try
1 shirin
1 siamakdecode0
1 huanghansheng
2
output
:
1hello
如您所见,程序在进入第一个函数后暂停。我已经检查了文档,但仍然找不到它停止运行的原因。谁能帮我?:p leading_face:freopen
答:
1赞
Ted Lyngmo
12/8/2022
#1
执行此操作时,您将所有输出重定向到该文件stdout
2.txt
freopen("2.txt", "w", stdout);
这就是为什么在那之后控制台上不显示任何输出的原因。查看文件,您很可能会在那里看到输出 - 如果成功的话。始终检查可能失败的函数是否成功。printf
freopen
2.txt
freopen
上一个:平衡多实例学习与不平衡类的数据
评论
<fstream>
?还是<iostream>
就此而言?我根本不相信这是一个C++问题/程序。freopen()
2.txt
printf
freopen("2.txt", "w", stdout);
freopen
scanf