c - 为什么在visual studio C编译器中会抛出这个异常?

标签 c visual-studio exception printf getchar

我正在努力提高我的 C 编程水平,我试图测试在获取字符的循环内显示输入流中的字符。我正在使用 getchar 方法。

当我的代码中存在 printf 语句时,我收到了一个异常抛出。 (如果我注释掉此函数中的 printf 行,则不会抛出异常)。

Exception: Unhandled exception at 0x611c91ad (msvcr90d.dll) in firstOS.exe: 0xC0000005: Access violation reading location 0x00002573.

这是代码……有什么想法吗?谢谢。

附言。我正在使用 stdio.h 库。

/*getCommandPromptNew - obtains a string command prompt.*/
void getCommandPromptNew(char s[], int lim){    

    int i, c;

    for(i=0; i < lim-1 && (c=getchar())!=EOF && c!='\n'; ++i){
        s[i] = c;
        printf('%s', c);
    }

最佳答案

尝试改变:

printf('%s', c);

printf("%c", c);

如果您希望在循环的结尾 打印整个字符串,您需要使用 NULL 字符终止它,如:

s[i] = 0;

然后您可以将其打印为:

printf("%s", s);

关于c - 为什么在visual studio C编译器中会抛出这个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485894/

上一篇:c - fread() 表现怪异

下一篇:c 编译错误

相关文章:

c++ - 什么时候可以通过捕获异常来真正解决问题?

c - 在 Release模式下延迟加载dll

c - 在 Linux 中使用共享内存通过 IPC 创建的缓冲区

c++ - 通过引用传递无效时通过传递链表在第 n 个位置添加元素

c - 指向 C 中函数数组的指针

visual-studio - 从 Visual Studio 2015 运行设备通用应用程序

c - 获取函数未定义

c# - 未观察到任务的异常

javascript - Prototype 1.7.1 和 native 数组使用的错误

java - 来自 Java 的 clang 的 `pkg-config` 参数