C语言scanf输入后直接跳出了
你好,我使用VS调试没有问题,可以输出OK,如下图:
如果你要直接运行看到效果的话,把getchar();改成system(“pause”);
并在前面添加#includestdlib.h,代码如下:
#include “stdafx.h”
#include stdio.h
#include stdlib.h//添加头文件
#define COLS 5
void store(double p[][COLS], int row);
int main(void)
{
double array[3][5];
store(array, 3);
printf(“OK”);
system(“pause”);//修改这一句
return 0;
}
void store(double p[][COLS], int row)
{
int i, j;
for (i = 0; i row; i++)
for (j = 0; j COLS; j++)
scanf_s(“%lf”, p[i][j]);
}
我的C语言程序直接跳过了一个输入的步骤是怎么回事。刚开始学c
因为scanf在输入数只时,碰到非数值时就停下来了,回车、空格等等都是非数值。
代码中要求输入两个数值,此时在第二个数值的后面,一定会有其他非数值字符,如回车符,而接下来输入字符时就将那个回车符作为了输入的字符了
C语言 结构体输入字符型的时候怎么老是跳过去了?
第一个scanf(“%ld”,p-num) 输入了一个数值后必然要按下回车,此时,这个scanf()是不接收回车的,因此你紧接着使用的scanf(“%c”,p-sex)就把回车接收了,办法的在第一个scanf(“%ld”,p-num)后面用一个fflush(stdin)语句清空输入流。
c语言输入一定长度自动跳出
输入的字符串就会被程序接收。输入的时候,windows会收到一个WM_CHAR的消息,根据这个消息,再根据设置的字体的大小,windows就设置了光标位置了。
c语言输入直接被跳过
在 scanf(“%c”,b);
上一行添加fflush(stdin);
上一行的回车给吸收了
清空输入流 这种问题见多了
为啥输入int double什么的不用加这个是因为 回车不是int也不是double 下面的scanf不会接收