c - 我想保存 op=R 和 s=5,但我的代码显示垃圾输出

标签 c

#include <stdio.h>
#include <string.h>

void main()
{
    int N,i,s;
    char op;
    scanf("%d",&N);
    int a[N];
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
    }

    scanf("%c %d",&op,&s);
    printf("%c %d",op,s);
}

如果我在代码中包含此 for 循环,然后执行此代码,scanf 不会读取我的输入。
如果我插入操作数 s 的值是 R 和 5,那么输出就是垃圾。

如果删除for循环,那么我printf打印正确的答案。

最佳答案

您需要使用尾随的 \n 字符。最简单的方法是编写:

scanf(" %c %d",&op,&s);  //notice the space before %c

关于c - 我想保存 op=R 和 s=5,但我的代码显示垃圾输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25794441/

相关文章:

c - 缓冲区失败测试用例的平均值

c - 使用#define 定义的数字的平方

c - C 中的越界内存位置

c - 基本 C/K&R 2.7/无论定义如何,字符都显示为菱形?

c - C 中的交集

c - 这在c中是什么意思?大括号内的方括号

c - 函数的时间复杂度和空间

计算幂数

c - 为什么当你用字符串初始化一个没有 const 的数组时 gcc 不给出警告?

c - 如何使用 gdb 调试加载了 LD_PRELOAD 的动态库中的函数?