码迷,mamicode.com
首页 > 其他好文 > 详细

C零基础课程-07-scanf的基本使用

时间:2019-10-10 11:17:06      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:c语言程序   put   scan   取数据   零基础   can   toc   ret   就是   

scanf格式化输入基本使用

scanf的第一个参数为格式化字符串,与printf类似,有“%”开头的格式控制符,每一个格式控制符对应后续一个参数。
scanf函数从标准输入(键盘)中读取数据至后续参数所指定的位置,因此,后续的每一个参数都应该指向一个内存地址

#include <stdio.h>

int main(int argc, char* argv[])
{
 int nValue = 0;
 scanf("%d", &nValue);
 printf("Your input is %d\r\n", nValue);
 return 0;
}

C语言中如何获取变量的地址

C语言程序中的每一个变量,在程序运行时,都会被分配内存空间,CPU依靠内存地址(类似门牌号码)找到对应的变量。

  • 对于普通的变量,我们可以通过C语言中的取地址符&获取的变量
  • 对于数组变量,数组的名字就是数组的首地址
int nValue = 0;
printf("%08X", nValue);
printf("%08X", &nValue);

int nValueAry[5] = {0};
printf("%08X", nValueAry);

利用scanf进行数据输入

第一个参数是格式化字符串,scanf根据格式化字符串指定的类型,将键盘输入的内容存储到后续参数中指定的位置中去。

输入一个整数并输出:

#include <stdio.h>

int main(int argc, char* argv[])
{
 int nValue = 0;
 scanf("%d", &nValue);
 printf("Your input is: %d\r\n", nValue);
    
 return 0;
}

输入一个字符并输出

#include <stdio.h>

int main(int argc, char* argv[])
{
 char chValue = 0;
 scanf("%c", &chValue);
 printf("Your input is: %c\r\n", chValue);
    
 return 0;
}

输入一个小数并输出

#include <stdio.h>

int main(int argc, char* argv[])
{
 double dbValue = 0;
 scanf("%lf", &dbValue);
 printf("Your input is: %lf\r\n", dbValue);
    
 return 0;
}

输入一个字符串并输出

#include <stdio.h>

int main(int argc, char* argv[])
{
 char szBuff[20] = { 0 };
 scanf("%s", szBuff);
 printf("Your input is: %s\r\n", szBuff);
    
 return 0;
}

scanf的进一步细节

为什么scanf是“格式化输入”

比较以下情形:键盘输入一样,但是分别采用%d与%X来输入数据。

#include <stdio.h>

int main(int argc, char* argv[])
{
 int nValue = 0;
 scanf("%d", &nValue);
 printf("Your input is: %d\r\n", nValue);
    
 return 0;
}
#include <stdio.h>

int main(int argc, char* argv[])
{
 int nValue = 0;
 scanf("%x", &nValue);
 printf("Your input is: %d\r\n", nValue);
    
 return 0;
}

其次,键盘的输入应该与格式化字符串的格式完全一致:

#include <stdio.h>

int main(int argc, char* argv[])
{
 int nValue1 = 0;
 int nValue2 = 0;
 scanf("%d,%d", &nValue1, &nValue2);
 printf("Your input is: %d, %d", nValue1, nValue2);
    
 return 0;
}

对于初学者建议:

  • 不要一次性读取多个变量
  • 对于字符串的读取,记得限制长度
#include <stdio.h>

int main(int argc, char* argv[])
{
 char szBuff[20] = { 0 };
 scanf("%19s", szBuff);
 printf("Input is: %s", szBuff);
    
 return 0;
}

C零基础课程-07-scanf的基本使用

标签:c语言程序   put   scan   取数据   零基础   can   toc   ret   就是   

原文地址:https://www.cnblogs.com/shellmad/p/11646151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!