如何读取数字?
scanf提供了一种简单的读取方式,但它对结束行处理得不好(why?)。
另一点,用scanf读入的字符串中不能含有“空格”,否则会以“空格”为分隔,将输入的字符串分隔为若干个字符串来处理。
人们很快找到了弥补scanf缺陷的简单方法:使用fgets+sscanf读取数字。
用fgets读取输入的一行,并用sscanf把文本转化成数字型。
sscanf代表“string scanf”, sscanf类似于scanf, 但它作用于串,而不是标准输入。
【例程】将输入的数据倍乘
/* DOUBLE.C -- double a input value */
#include "stdio.h"
#include "conio.h"
char line[100]; /* input line from console */
int value; /* to double this value */
int main()
{
printf("Enter a value: ");
fgets(line,sizeof(line),stdin);
sscanf(line,"%d",&value);
printf("Twice %d is %d/n",value,value*2);
getch();
return(0);
}
本文介绍如何利用fgets与sscanf组合替代scanf来读取包含空格的字符串并将其转换为数字。通过示例代码展示如何从控制台读取一行数据并将其转化为整数类型。
4692

被折叠的 条评论
为什么被折叠?



