C字符串输出未按预期执行

时间:2015-09-17 13:44:16

标签: c getline

在Windows 7系统上的Visual Studio Express 2013中运行的C中,我有以下代码,用于打印出现注释的文本文件中的行。这些行在输入文件中用#符号表示为一行中的第一个字符。假设一行是:

#George Washington lives here

当我执行程序时,它打印出来:

comment: α°/

为什么我的代码不能打印出来?检测这些行并处理它们没有问题。

string str;
ifstream in;
in.open(filename); 
if (in.is_open()) 
   getline (in, str);
   while (in) {
   if (str[0] == '#') { printf("\ncomment: %s", str); }

1 个答案:

答案 0 :(得分:0)

在Visual Studio 2013中,您可以配置Unicode和Multibyte之间的字符集。你可以在项目中找到它。

To" normalize"你可以添加c_str()

的字符串
printf("\ncomment: %s", str.c_str());