十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言输入输出函数有很多,bai标准I/O函数du中包含了如下几个常用的函数:
左权网站建设公司创新互联,左权网站设计制作,有大型网站制作公司丰富经验。已为左权上千多家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的左权做网站的公司定做!
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int scanf(const char *format, arg_list)
scanf主要从标准zhi输入流中获取dao参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);
它要求在标准输入流中输入类似"son of bitch,1000"这样的字符串,同时程序会将"son of bitch"给str,1000给icount.
scanf函数的返回值为int值,即成功赋值的个数,在上例中如果函数调用成功,则会返回2,所以我们在写程序时,可以通过
语句if(scanf("%s,%d",str,icount) != 2){...}来判断用户输入是否正确.
int printf(const char *format, arg_list)
printf主要是将格式化字符串输出到标准输出流中,在stdio.h头文件中定义了标准的输入和输出,分别是stdin,stdout.
arg_list可以是变量名,也可以是表达式,但最终都会以值的形式填充进format中.
int getc(FILE *fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为:(ch = getc(fp)) != EOF.EOF为文件结束标志,
定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin
时,getc(stdin)就等同于getchar()了.
int putc(int ch,FILE *fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又
涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符
串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:
while ((c = getchar()) != '#')这是以#来结束的.
int putchar(int ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char * gets(char *str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int puts(char *str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char *fgets(char *str, int num, FILE *fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数
不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int fputs(char *str, file *fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int fgetc(FILE *fp)
fgetc从fp的当前位置读取一个字符.
int fputc(int ch, file *fp)
fputc是将ch写入fp当前指定位置.
int fscanf(FILE *fp, char *format,...)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int fprintf(FILE *fp, char *format,...)
fprintf将格式化数据写入流式文件中.
1)输入单个字符:getc,getchar,getch(不会在屏幕显示输入字符)
2) 输出单个字符:putc
3) 输入一串字符(可以有空格,Tab 等): gets
4) 输出一串字符(可以有空格,Tab 等): puts
5) 标准输入:scanf(可以输入数字,字符,字符串等。输入以空白字符分割)
6) 标准输出:printf(可以格式花输出数字,字符,字符串等。)
文件输入输出:
在上面的输入输出函数(除了 getchar,getch)前面加上 f,比如fgetc,fputc,fscanf,fprintf,就是文件输入输出函数了。
#includeiostream
#includealgorithm
#includestring.h
using namespace std;
#define NUM 100
struct Str{char str[20];};
bool cmp(Str a,Str b)
{
return strcmp(a.str,b.str)0;
}
int main()
{
int n;
Str str[NUM];
scanf("%d%*c",n);//输入人的个数
for(int i=0;in;i++)
gets(str[i].str);//依次输入每个人的姓名,用回车键隔开
sort(str,str+n,cmp);
printf("排序后:\n");
for(int i=0;in;i++)
puts(str[i].str);
return 0;
}
这样子可以吗?
getc():
调用方式:int getc(FILE *stream)
它返回指定输入流stream的当前位置的下一个字符,并增加文件的位置指示器.
getch():
调用方式:int getch(void)
getch()从控制台读取一个字符,但不把该字符显示在屏幕上,也就是不回显.
getche():
调用方式:int getche(void)
getche()从控制台读取一个字符,把该字符显示在屏幕上,也就是回显.
getchar():
调有方式:int getchar(void)
getchar()从控制台读取一个字符,并回显,它和getch(),getche()的不同在于,它等到输入一个回车才结束,就算你输入了一个字符串,它也只取其中的第一个字符.
getchar()头文件为string.h,即需有# includestring.h
其他的头文件为conio.h
呃,你可以使用追问吗~我这太不方便了,请问你用的什么编译器?
呃,这样子啊,对gcc我不清楚了就,也许其不支持或者文件库不一样,你可以针对查查,
在vc中我试了没有问题。。。
这段代码没有问题
你需要检查一下链表的数据内容,在调用本函数前,用输出语句先遍历一下链表看一下内容吧,估计是建表有问题,或是输入的数据存储不正确。
#include stdio.h
#include stdlib.h
#define N 2
struct biao
{
char name[15];
char number[10];
} tongxun[N];
void luru()//输入电话号码函数
{
int i;
for (i = 0; i N; i++)
{
printf("请输入姓名,号码\n");
scanf("%s%s", tongxun[i].name, tongxun[i].number);
}
}
search ()//查询函数
{
int j, m, ncount = -1;
char temp[15];
printf("请输入要查找的姓名:\n");
scanf("%s", temp);
for (j = 0; j N; j++)
{
if (strcmp(tongxun[j].name, temp) == 0)
ncount = j;
}
if (ncount != -1)
printf("找到%s,号码是%s\n", temp, tongxun[ncount].number);
else
printf("没有找到!\n");
for (m = 0; m N; m++)
printf("%s\t%s\t", tongxun[m].name, tongxun[m].number);
}
void main()
{
luru();
search();
}