Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C字符串输出未按预期执行_C_Getline - Fatal编程技术网

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

C字符串输出未按预期执行,c,getline,C,Getline,在Windows 7系统上运行Visual Studio Express 2013的C中,我有以下代码,用于打印文本文件中出现注释的行。这些行在输入文件中以#符号作为行中的第一个字符表示。假设一条线是: #George Washington lives here 当我执行程序时,它会打印出: comment: α°/ 为什么我的代码没有打印出行?检测这些行并以其他方式处理它们没有问题 string str; ifstream in; in.open(filename); if (in.is

在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); }

在Visual Studio 2013中,可以在Unicode和多字节之间配置字符集。你可以在项目礼仪中找到它

要“规范化”字符串,可以添加c_str()


在Visual Studio 2013中,可以在Unicode和多字节之间配置字符集。你可以在项目礼仪中找到它

要“规范化”字符串,可以添加c_str()


我认为你的代码>如果< /Cord>块应该在BrkeTS'中,这看起来更像是C++,而不是C.看起来像你的代码> GETLION < /代码>和<代码>,而行是错误的顺序。我认为你的<代码>如果< /Cux>块应该在BrkeTeSt'中,这看起来更像C++,而C.看起来像你的代码> GETLION<代码>代码>,而行错了。顺序。是的,问题可能是编码不匹配。不,
c_str
任何有意义的东西。谢谢洛伦兹和所有人。成功了!新的C++(是的,你是正确的)Klas Lindb先生,但是学习速度很快。这将有助于我更深入地了解字符串、c字符串和所有这些好东西的工作原理。但现在,我得到了我想要的输出!谢谢对不起,洛伦兹。作为一个新手,我还不能投票支持你的答案。是的,问题很可能是编码不匹配。不,
c_str
任何有意义的东西。谢谢洛伦兹和所有人。成功了!新的C++(是的,你是正确的)Klas Lindb先生,但是学习速度很快。这将有助于我更深入地了解字符串、c字符串和所有这些好东西的工作原理。但现在,我得到了我想要的输出!谢谢对不起,洛伦兹。作为一个新手,我还不能对你的答案投赞成票。
printf("\ncomment: %s", str.c_str());