いくつかの入出力の問題
, , 。 , , cin 。 cin , ,cin 。
---------------
: 、 !
:
scanf() Space 、Enter、Tab , ( ),( )// getchar() ;
getchar() Enter , ;
:
scanf() Space、Enter、Tab , ( ) 。
gets() Enter ( ), , !
: , , :
1:C , !
fflush(stdin)。
2: 。
scanf("%[^/n]",string);
Turbo C2.0 、 printf( )
scanf(), 。
printf() ( ) ; scanf()
( ) 。 。
、printf()
printf() ,
。 。printf() :
printf("< >", < >);
: ,
; , "%" , ,
。
,
, "," , ,
。
1.
Turbo C2.0 :
━━━━━━━━━━━━━━━━━━━━━━━━━━
──────────────────────────
%d
%u
%f
%s
%c
%p
%e
%x, %X
%0
%g
━━━━━━━━━━━━━━━━━━━━━━━━━━
:
(1). "%" 。
: %3d 3 , 3 。
%9.2f 9 , 2, 6,
, 9 。
%8s 8 , 8 。
、 , 。
, , ;
, 。
, 0, 0。
: %04d 4 , 0
4 。
, ,
。
: %6.9s 6 9 。 9,
9 。
(2). "%" l, 。
: %ld long
%lf double
(3). , "%" "-"
, 。
: %-7d 7
%-10s 10
2.
━━━━━━━━━━━━━━━━━━━━━━━━━━
──────────────────────────
/n
/f
/r
/t Tab
/xhh ASCII 16 ,
hh 1 2 16
━━━━━━━━━━━━━━━━━━━━━━━━━━
printf() , ,
, Turbo C2.0 。
1
#include<stdio.h>
#include<string.h>
int main()
{
char c, s[20], *p;
int a=1234, *i;
float f=3.141592653589;
double x=0.12345678987654321;
p="How do you do";
strcpy(s, "Hello, Comrade");
*i=12;
c='/x41';
printf("a=%d/n", a); /* a=1234*/
printf("a=%6d/n", a); /* 6 a= 1234*/
printf("a=%06d/n", a); /* 6 a=001234*/
printf("a=%2d/n", a); /*a 2 , a=1234*/
printf("*i=%4d/n", *i); /* 4 *i= 12*/
printf("*i=%-4d/n", *i); /* 4 *i=12*/
printf("i=%p/n", i); /* i=06E4*/
printf("f=%f/n", f); /* f=3.141593*/
printf("f=6.4f/n", f); /* 6 4
f=3.1416*/
printf("x=%lf/n", x); /* x=0.123457*/
printf("x=%18.16lf/n", x);/* 18 16
x=0.1234567898765432*/
printf("c=%c/n", c); /* c=A*/
printf("c=%x/n", c); /* ASCII c=41*/
printf("s[]=%s/n", s); /* s[]=Hello, Comrade*/
printf("s[]=%6.9s/n", s);/* 9 s[]=Hello,
Co*/
printf("s=%p/n", s); /* s=FFBE*/
printf("*p=%s/n", p); /* p=How do you do*/
printf("p=%p/n", p); /* p=0194*/
getch();
retunr 0;
}
。
1. #include<stdio.h> stdio.h,
, 。
Turbo C2.0 ,
"*.h" , #include<*.h> #include"*. h"
, 。 ,
。
、scanf()
scanf() , ( ) 。
:
scanf("< >", < >);
;
1. : printf() 。
2. : scanf()
。
3. : scanf()
。
, 。 printf()
, 。 "," 。
2:
main()
{
int i, j;
printf("i, j=?/n");
scanf("%d, %d", &i, &j);
}
scanf() , ,
。 "," , scanf() 。
, 。
:
(1). ,
, scanf() , "&" 。
3
mian()
{
char *p, str[20];
scanf("%s", p); /* */
scanf("%s", str);
printf("%s/n", p); /* */
printf("%s/n", str);
}
(2). "%" ,
。
3 10 p, scanf()
scanf("%10s", p);
10, p ,
scanf("%s", str) 11 。
scanf() , :
scanf() , :
main()
{
char c1, c2;
scanf("%c", &c1);
scanf("%c", &c2);
printf("c1 is %c, c2 is %c", c2/1, c2);
}
, A ( ), scanf
("%c", &c1) , c1 "A", ,
scanf("%c", &c2) , c2 , AB ,
: c1 is A, c2 is B。
, fflush()(
)。 :
#include<stdio.h>
main()
{
char c1, c2;
scanf("%c", &c1);
fflush(stdin);
scanf("%c", &c2);
printf("c1 is %c, c2 is %c", c1, c2);
}
1.1.2
,
, , ,
。 。
、puts() gets()
1. puts()
puts() ( ) , :
puts(s);
s ( )。
puts() printf("%s/n", s) 。
4:
main()
{
char s[20], *f; /* */
strcpy(s, "Hello! Turbo C2.0"); /* */
f="Thank you"; /* */
puts(s);
puts(f);
}
:
(1). puts() , 。
(2). puts() 。 :
puts("Hello, Turbo C2.0");
2. gets()
gets() ( ) ,
。 :
gets(s);
s ( )。
gets(s) scanf("%s", &s) , , scanf("%s", &s)
, ,
, gets()
。
5
main()
{
char s[20], *f;
printf("What's your name?/n");
gets(s); /* */
puts(s); /* */
puts("How old are you?");
gets(f);
puts(f);
}
:
(1). gets(s) s 。 ,
, "Null pointer asignmemt" 。
、putchar()、getch()、getche() getchar()
1. putchar()
putchar() , :
putchar(ch);
ch 。
putchar() printf("%c", ch);
6:
#include<stdio.h>
main()
{
char c: /* */
c='B'; /* */
putchar(c); /* */
putchar('/x42'); /* B*/
putchar(0x42); /* ASCII B*/
}
。
2. getch()、getche() getchar()
(1) getch() getche()
。 :
getch();
getche();
: getch() , getche()
。
7:
#include<stdio.h>
main()
{
char c, ch;
c=getch(); /* c*/
putchar(c); /* */
ch=getche(); /* ch*/
putchar(ch);
}
,
。
8:
#include<stdio.h>
main()
{
char c, s[20];
printf("Name:");
gets(s);
printf("Press any key to confinue...");
getch(); /* */
}
(2) getchar()
getchar() , 。
: getchar() ,
。 。
getchar() :
getchar();
9:
#include<stdio.h>
main()
{
char c;
c=getchar(); /* */
putchar(c); /* */
getch(); /* */
}
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)
putc ch fp .
int fscanf(FILE *fp, char *format,...)
scanf , .
int fprintf(FILE *fp, char *format,...)
fprintf .