c – 如何使用函数freopen_s
发布时间:2020-12-16 07:08:01 所属栏目:百科 来源:网络整理
导读:为了从文本文件中读取输入,我编写了以下代码: int main(){ int x;#ifndef ONLINE_JUDGE freopen("input.txt","r",stdin);#endif scanf("%d",x); printf("%dn",x); system("pause"); return 0;} 它的效果非常好. 但是,在visual studio中,编译器因为freopen
为了从文本文件中读取输入,我编写了以下代码:
int main(){ int x; #ifndef ONLINE_JUDGE freopen("input.txt","r",stdin); #endif scanf("%d",&x); printf("%dn",x); system("pause"); return 0; } 它的效果非常好. 但是,在visual studio中,编译器因为freopen而给我一个错误,并建议我使用freopen_s代替.我试着理解函数freopen_s是如何工作的,但我不能.我的代码: int main(){ int x; #ifndef ONLINE_JUDGE FILE *stream; freopen_s(&stream,"input.txt",x); system("pause"); return 0; } 它不输出任何东西,甚至“暂停”也不起作用.程序完成后没有打印任何内容,cmd就会消失.我不知道为什么在freopen_s中使用“stream”.谢谢你回答我的问题. 解决方法
我建议你避免使用C风格的I / O库并使用IOSTREAM库.它更安全,更干净的解决方案.下面是打开文件并将每行读入“std :: string”对象并在控制台上打印的示例代码.
int main() { std::string file = "input.txt"; std::string line; std::ifstream text_filestream(file.c_str()); while(std::getline(text_filestream,line)) { std::cout<<line<<std::endl; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读