我有一个在 Windows 上运行的控制台模式程序。程序getchar()
在循环中调用 anEOF
或 a0
返回。我想在运行调试器时输入以下内容之一作为测试向量:
“ abc\0
”或“abc\EOF
我似乎也无法始终如一地生成。我通过键入“尝试了这个问题中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?