在 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() 的字符串
printf("\ncomment: %s", str.c_str());
关于C 字符串输出未按预期执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32631890/