我有一个在 Windows 上运行的控制台模式程序。程序在循环中调用 getchar()
并返回 EOF
或 0
。我想在运行调试器时输入以下内容之一作为测试向量:
“abc\0
”或“abc\EOF
我似乎也无法始终如一地生成。我尝试了建议 in this question通过键入 a bcCTRL-ZENTER”。返回 97,98,99,26
到我的程序,然后在下一个 getchar()
调用时挂起。
输入 CTRL-D 也没有帮助,getchar
返回控制字符 4,然后是换行符,然后它复制了我刚刚输入的行在控制台上。就好像VS在用控制字符作为编辑字符。
编辑:
这是我正在使用的代码的精简版本。我在调试控制台和命令窗口中看到相同的行为。
#define MAXSZ 4096
int main(int argc, char **argv)
{
short int data[MAXSZ]={0}, i=0;
char c;
do {
if (i==MAXSZ) break;
c = getchar();
if (c!=EOF) data[i]=c;
} while (data[i++]!=0);
for (i=0;data[i]&&i<MAXSZ;i++)
putchar(data[i]);
}
如何在 Visual Studio 调试 Windows 控制台中输入 EOF 或 ASCII 0?
最佳答案
试试这个:
<Enter><Ctrl-Z><Enter>.
关于visual-studio - 如何在 visual studio 调试控制台中生成 EOF(或 ASCII 0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932582/