正文

关于用fstream或cin输入数据的问题.2005-08-30 18:20:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/4266.html

分享到:

#include <iostream.h> #include <fstream.h> int main() { char s[25]; ofstream f1("data.txt"); f1<<"C++ Programing"; f1.close(); ifstream f2("data.txt"); f2>>s; cout<<s<<endl; f2.close(); return 0; } 前几天有网友问了上面程序输出什么的时候,我看了一下就说是C++ Programing 但在VC++下测试,结果不对,结果只是C++. 考虑了很久,得出结论:用C++的文件流或cin输入字符串数据时候,一遇到空格程序就认为你已经完成了输入了.而把空格后面的数据作为后面的数据. 你可以测试下面的程序. int main() { char s[25]; cin>>s; cout<<s<<endl; } 输入数据:C++ Programing 结果是不是:C++? 所以说用ofstream或cin不可以把有空格的字符串赋给s. 如果有一个程序的确想把C++ Programing赋给s怎么办? 1.首先我们可能会想到scanf() int main() { char s[25]; scanf("%s",s); printf("%s\n",s); } 输入数据:C++ Programing 结果很失望还是:C++? 2.gets() int main() { char s[25]; gets(s); printf("%s\n",s); } 输入数据:C++ Programing 结果是:  C++ Programing 3.cin.getline()经测试也可以. int main() { char s[25]; cin.getline(s); cout<<s<<endl; } 输入数据:C++ Programing 结果是:  C++ Programing 总结:所以如果要把空格的字符串赋给字符串变量要用gets()或cin.getline().

阅读(3403) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册