第一讲:c/c++基本字符数字输入printf(),scanf_s(),gets_s(),getchar()
2017-04-07 16:36
513 查看
本文的编写是为了在学习c++的时候加深自己的记忆,同时也为与我一般的初学者提供一些参考,此处特别感谢微信公众号“c/c++的编程教室”,我的学习过程按照公众号的推送进行学习的!
1.从输入hello world开始进行实验,printf()格式化输出函数
(1)直接采用printf()显示字符串
#include<stdio.h>//用于标准输入输出的头文件
void main()
{
printf("hello world\n");
getchar();//暂停屏幕
}
(2)加入show函数
#include<stdio.h>
void show();//show()函数声明
void main()
{
show();
getchar();
}
void show()
{
printf("hello world\n");
}
(3)赋值给char 变量,以字符串的形式输出
#include<stdio.h>
void main()
{
char world[] = "hello world";//char 型数组,长度由初始默认
printf("%s\n", world);
getchar();
}
此处有必要讲一下printf()的控制字符
%s 字符串
%c 单个字符
%d(%i) 有符号的十进制整数
%u 无符号的十进制整数
%o 无符号八进制整数
%x(%X) 无符号十六进制整数
%f 浮点数,十进制计数法
%a (%A) 浮点数,16进制数字和p-P-计数法
%e(%E) 浮点数,e-E-计数法
%g(%G) 根据数值不同自动选择
%p 指针
此处既然讲到了显示控制字符,便讲一下显示精度与左右对齐
#include<stdio.h>
void main()
{
char world[] = "hello world";//char 型数组,长度由初始默认
printf("#%20.4s#\n", world);//20是只显示长度,此处显示占20个字符的长度。4是显示精度,此处只显示4个字符
printf("#%20.12s#\n", world);//默认左对齐
printf("#%-20.12s#\n", world);//-表示右对齐
getchar();
}
关于数字的显示,此处做一些说明
位(bit)与字节(Byte)的转换:1Byte=8bit
%.el 期望输出是double类型,占8个字节
%d 期望输出为int型,占4个字节
%ld 期望输出为long型,占4个字节
%lld 期望输出为long long 型,占8个字节
查看各种输出类型的最大值可通过limit这个库函数,包含在头文件#include<limit.h>里面
#include<stdio.h>
#include<limits.h>//查看数值类型的最大值
int main()
{
printf("int类型的最大值:%ld.\n", INT_MAX);
printf("long类型的最大值:%ld.\n",LONG_MAX);
getchar();
return 0;
}
2.从键盘读入字符、单词或者数字
scanf()函数是格式化输入函数,从键盘读取输入信息,但是由于使用不够安全,现采用与之功能相同的scanf_s()函数,差别在于后者多了一个最多字符限制数字
(1)输入数字进行简单运算,注意同时输入两个数字时中间用逗号隔开
#include<stdio.h>
int main()
{
int a, b;
printf("请输入数字:\n");
scanf_s("%d", &a);
scanf_s("%d", &b);
printf("a*b=%d\n", a*b);
while (1);
return 0;
}
(2)输入字符串,注意scanf_s()读取到空格就停止,故只能读取一个单词或者数字,字符
#include<stdio.h>
int m
bde6
ain()
{
char world[20];
printf("请输入字符串:\n");
scanf_s("%s", world,20);
printf("你输入的字符串是:%s\n", world);
while (1);
return 0;
}
3.输入包含多个单词的字符串
gets_s()函数是gets()函数的安全函数,采用gets_s()函数来获取字符串,返回指针
#include<stdio.h>
int main()
{
char name[20];
char *ptr;
printf("请输入字符串:\n");
ptr=gets_s(name);
printf("你输入的字符串是:%s\n", name);
printf("ptr=:%s\n", ptr);
while (1);
return 0;
}
4.getchar()和putchar()
#include <stdlib.h>//system
#include <stdio.h>//输入输出
int main()
{
int ch;
printf("请输入一个字符串:\n");
while ((ch = getchar()) != '\n')
putchar(ch);
putchar('\n');
system("PAUSE");
return 0;
}
5.总结今天学习的简单的输入输出函数对
(1)3个标准输入函数
scanf_s():获取单词而非字符串,遇空格结束
gets_s():获取字符串,包括空格与标点符号,遇换行或者\n结束
fgets():是获取文件的版本,关于文件的获取后面再学习
(2)3个标准输出函数
printf():标准格式化输出,效率高,仅次于puts()
puts():效率最高的输出函数,但是只能配合gets()使用,且只能输出字符串
fputs():puts()的文件版本,后续再做学习
比较printf()和putf()的时间差别
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int MAX = 10000;
int main()
{
char name[MAX];
long StartTime, EndTime, TimeForPrintf, TimeForPutchar;
for (int i = 0; i<MAX; i++)
name[i] = 'a';
StartTime = clock();
for (int i = 0; i<MAX; i++)
printf("%c ", name[i]);
EndTime = clock();
TimeForPrintf = EndTime - StartTime;
StartTime = clock();
for (int i = 0; i<MAX; i++)
putchar(name[i]);
EndTime = clock();
TimeForPutchar = EndTime - StartTime;
putchar('\n');
printf("TimeForPrintf = %ld ms\n", TimeForPrintf);
printf("TimeForPutchar = %ld ms\n", TimeForPutchar);
system("PAUSE");
}
(3)getchar()和putchar()
1.从输入hello world开始进行实验,printf()格式化输出函数
(1)直接采用printf()显示字符串
#include<stdio.h>//用于标准输入输出的头文件
void main()
{
printf("hello world\n");
getchar();//暂停屏幕
}
(2)加入show函数
#include<stdio.h>
void show();//show()函数声明
void main()
{
show();
getchar();
}
void show()
{
printf("hello world\n");
}
(3)赋值给char 变量,以字符串的形式输出
#include<stdio.h>
void main()
{
char world[] = "hello world";//char 型数组,长度由初始默认
printf("%s\n", world);
getchar();
}
此处有必要讲一下printf()的控制字符
%s 字符串
%c 单个字符
%d(%i) 有符号的十进制整数
%u 无符号的十进制整数
%o 无符号八进制整数
%x(%X) 无符号十六进制整数
%f 浮点数,十进制计数法
%a (%A) 浮点数,16进制数字和p-P-计数法
%e(%E) 浮点数,e-E-计数法
%g(%G) 根据数值不同自动选择
%p 指针
此处既然讲到了显示控制字符,便讲一下显示精度与左右对齐
#include<stdio.h>
void main()
{
char world[] = "hello world";//char 型数组,长度由初始默认
printf("#%20.4s#\n", world);//20是只显示长度,此处显示占20个字符的长度。4是显示精度,此处只显示4个字符
printf("#%20.12s#\n", world);//默认左对齐
printf("#%-20.12s#\n", world);//-表示右对齐
getchar();
}
关于数字的显示,此处做一些说明
位(bit)与字节(Byte)的转换:1Byte=8bit
%.el 期望输出是double类型,占8个字节
%d 期望输出为int型,占4个字节
%ld 期望输出为long型,占4个字节
%lld 期望输出为long long 型,占8个字节
查看各种输出类型的最大值可通过limit这个库函数,包含在头文件#include<limit.h>里面
#include<stdio.h>
#include<limits.h>//查看数值类型的最大值
int main()
{
printf("int类型的最大值:%ld.\n", INT_MAX);
printf("long类型的最大值:%ld.\n",LONG_MAX);
getchar();
return 0;
}
2.从键盘读入字符、单词或者数字
scanf()函数是格式化输入函数,从键盘读取输入信息,但是由于使用不够安全,现采用与之功能相同的scanf_s()函数,差别在于后者多了一个最多字符限制数字
(1)输入数字进行简单运算,注意同时输入两个数字时中间用逗号隔开
#include<stdio.h>
int main()
{
int a, b;
printf("请输入数字:\n");
scanf_s("%d", &a);
scanf_s("%d", &b);
printf("a*b=%d\n", a*b);
while (1);
return 0;
}
(2)输入字符串,注意scanf_s()读取到空格就停止,故只能读取一个单词或者数字,字符
#include<stdio.h>
int m
bde6
ain()
{
char world[20];
printf("请输入字符串:\n");
scanf_s("%s", world,20);
printf("你输入的字符串是:%s\n", world);
while (1);
return 0;
}
3.输入包含多个单词的字符串
gets_s()函数是gets()函数的安全函数,采用gets_s()函数来获取字符串,返回指针
#include<stdio.h>
int main()
{
char name[20];
char *ptr;
printf("请输入字符串:\n");
ptr=gets_s(name);
printf("你输入的字符串是:%s\n", name);
printf("ptr=:%s\n", ptr);
while (1);
return 0;
}
4.getchar()和putchar()
#include <stdlib.h>//system
#include <stdio.h>//输入输出
int main()
{
int ch;
printf("请输入一个字符串:\n");
while ((ch = getchar()) != '\n')
putchar(ch);
putchar('\n');
system("PAUSE");
return 0;
}
5.总结今天学习的简单的输入输出函数对
(1)3个标准输入函数
scanf_s():获取单词而非字符串,遇空格结束
gets_s():获取字符串,包括空格与标点符号,遇换行或者\n结束
fgets():是获取文件的版本,关于文件的获取后面再学习
(2)3个标准输出函数
printf():标准格式化输出,效率高,仅次于puts()
puts():效率最高的输出函数,但是只能配合gets()使用,且只能输出字符串
fputs():puts()的文件版本,后续再做学习
比较printf()和putf()的时间差别
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int MAX = 10000;
int main()
{
char name[MAX];
long StartTime, EndTime, TimeForPrintf, TimeForPutchar;
for (int i = 0; i<MAX; i++)
name[i] = 'a';
StartTime = clock();
for (int i = 0; i<MAX; i++)
printf("%c ", name[i]);
EndTime = clock();
TimeForPrintf = EndTime - StartTime;
StartTime = clock();
for (int i = 0; i<MAX; i++)
putchar(name[i]);
EndTime = clock();
TimeForPutchar = EndTime - StartTime;
putchar('\n');
printf("TimeForPrintf = %ld ms\n", TimeForPrintf);
printf("TimeForPutchar = %ld ms\n", TimeForPutchar);
system("PAUSE");
}
(3)getchar()和putchar()
相关文章推荐
- C_字符读取函数scanf、getchar、gets深入了解
- 深入解析scanf()/getchar()和gets()等函数针对字符串输入的问题
- 【C语言天天练(十八)】字符/字符串输入函数fgetc、fgets、getc、getchar和gets
- C语言基本的输入和输出函数(printf()和scanf() )
- 切记scanf再输入字符的时候遇到空格是认为结束的,若有空格请用gets输入
- scanf(), getchar(), 以及gets(),空白符以及输入缓冲区的问题
- 助教:c/c++——字符串反转及字符串连接:区分gets,puts,scanf(),printf()
- 深入解析scanf()/getchar()和gets()等函数针对字符串输入的问题
- C++基础:各种输入方法总结,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
- c++中 cin.get();cin.getline();getline();gets();getchar()等输入函数的小结
- [c++]输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。(写的代码有疑惑,求解求教)
- 输入和获取字符的使用(putchar,getchar,puts,gets,fputc,fgetc,fscanf,fprintf)
- C_字符读取函数scanf、getchar、gets深入了解 .
- C++字符输入getchar()和字符输出putchar()
- c++ 文件复制 往文件中输入字符、数字、字符串
- scanf()/getchar()和gets()读入字符和字符串的详细讲解
- 【转载】深入了解scanf()/getchar()和gets()等函数,C++系列教程,C++实例教程,C++
- C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数(原创)
- c++中将输入的数字以字符(串)形式输出
- C/C++学习笔记1 - 深入了解scanf()/getchar(cin、cin.get()、cin.getline()、getline()、gets()、getchar()的区别 (OJ时候会用到)