C++ 表达式:(未签名)(c&x2B;1)<;=256?

C++ 表达式:(未签名)(c&x2B;1)<;=256?,c++,C++,在运行我的程序时不断出现此错误。如果我删除任意一个void函数,它都可以正常工作,但是当我尝试运行完整的程序时,它会给我一个表达式:(unsigned)(c+1)文本数据中有什么?例如,当遇到一个德语Umlaut或另一个char>0x80时,它会被解释为负数,这将解释您的错误。代码看起来正常,而您提到的问题看不到,因为没有名为c的变量,所以您如何得到您提到的错误? 但是,在Convert函数中,在进入do while循环之前,请在“.”以外的某个值旁边进行初始化,例如 char next = 0

在运行我的程序时不断出现此错误。如果我删除任意一个void函数,它都可以正常工作,但是当我尝试运行完整的程序时,它会给我一个表达式:(unsigned)(c+1)文本数据中有什么?例如,当遇到一个德语Umlaut或另一个char>0x80时,它会被解释为负数,这将解释您的错误。

代码看起来正常,而您提到的问题看不到,因为没有名为c的变量,所以您如何得到您提到的错误? 但是,在Convert函数中,在进入do while循环之前,请在“.”以外的某个值旁边进行初始化,例如

char next = 0;

是否要在整个文件上运行两个不同的进程?如果是这样的话,您就不会在函数之间寻找文件的开头。您需要这样做:

countUpperLower(fin, fout);
fin.seekg(0);
Convert(fin, fout);

此外,输出文件似乎为空。。不确定这是否是你的意图。您的意思是要执行
out\u stream什么是准确、完整的错误消息?代码中没有名为
c
的变量。弹出一个对话框,显示:调试断言失败!程序:…/Homebook6.exe文件:f:\dd\vctools\crt\u bld\self\u x86crt\src\isctpye.c行:56表达式:(未签名)(c+1)此外,当我使用CTRL+F5运行程序时,没有编译器错误。文件中只有文本读取:Keith Kramer,CSCI 123,2014年10月31日。我要做的是首先计算原始CAD.dat文件中大写和小写字母的数量,然后获取该文件,将所有空格更改为“-”字符,将所有数字更改为“#”字符,交换所有小写和大写字母,并在转换后将其输出到屏幕。我可能错了,但我假设我需要两个独立的函数来完成这项工作。你对第二部分的看法是正确的,但是我将其保留为cout,因此在更仔细地阅读了你的评论之后,问题是我没有在te secon void函数之前初始化到文件的开头。我在第二个void函数之前重新打开了文件,现在它可以工作了。谢谢你的帮助@Kramer,而不是重新打开它,你应该能够使用
fin.seekg(0)
就像在我的答案中一样。不管怎样,我很高兴你能成功。
countUpperLower(fin, fout);
fin.seekg(0);
Convert(fin, fout);