使用printf()函数和scanf()函数,要声明头文件#include <stdio.h>
1. printf()函数
形式: printf("格式控制字符串",输出表列);
功能:通过标准输出设备(如显示器)输出一组数据,输出形式由“格式控制”字符串规定。
例如: printf("%4d,%4d",a,b);
2. scanf()函数
形式: scanf("格式控制字符串",地址表列); //其中地址表列由若干个变量地址组成的,地址是由"&"运算得到的
功能: 从终端输入任何类型的多个数据
注意事项:在终端输入数据时,采用的分隔符应与格式控制中的分隔符一致。
在下列情况下可认为数据输入结束:
1)遇到空格、回车、tab时
2)遇宽度结束
3)非法输入
3. puts() : 输出字符串,只需要给出字符串的地址即可(字符串常量、char数组名、char指针等等),且puts()在输出时,会自动在行尾加上一个换行符(即不需要自己换行)
4. gets() :
gets()可以接收输入字符串中的空格、tab键和回车
语法:gets(字符数组名或指针);
*gets与scanf()的区别:
gets()可以接受回车键之前输入的所有字符,并用'\n'替代'\0',回车键不会留在缓冲区中,且gets()只能读取字符串;
scanf()当遇到回车、空格和tab键时会自动在字符串后面添加'\0',但是回车、空格和tab键仍会留在输入的缓冲区中,scanf()可以读取任意类型的数据;
可以用一段代码测试一下:
#includeint main(){ char ch1[10], ch2[10], c1, c2; scanf("%s",ch1); c1=getchar(); gets(ch2); c2=getchar() ; return 0;}
依次键入asdfg回车,asdfg回车,则ch1="asdfg\0", c1='\n',ch2="asdfg\0", c2需要输入。
5. getchar()
当程序调用getchar时,程序在等待用户输入。用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车也会放到缓冲区中)。因此,getchar()也会读取回车字符。如果用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓冲区中,等待后续getchar()调用读取,即后续的getchar()调用不会等待用户按键,而是直接读取缓冲区中的字符,直到缓冲区中的字符读完。
6. getline() 函数
C++中为了使用的方便,C++在标准库中添加了getline()函数,C++对不同的输入流对象都定义了一个getline函数。
对于标准输入来说,头文件<iostream>中声明了getline函数。
istream::getline
istream& getline(char* s, streamsize n);
istream& getline(char* s, streamsize n, char delim); //delim参数是指定分隔符,如果不指定默认使用'\n'。
#includeusing namespace std;int main(){ char line[100]; while(cin.getline(line,100)) cout< <
C++中还定义了一个std命名空间的全局函数,因为这个getline函数的参数使用了string字符串,所以声明在了<string>头文件中了。
声明如下:
istream& getline(istream& is, string& str, char delim);
istream& getline(istream& is, string& str);
*C++中的getline()函数读取空白符,但不读取换行符。
*gcc中也定义了getline()函数,但是在这里不再进行赘述。
7. C++ 一次性读入一行数字,并且保存在数组中
#include#include #include #include using namespace std;int main(){ string line; getline(cin,line); stringstream ss; ss<