- 论坛徽章:
- 0
|
原帖由 cunettenuc 于 2007-6-27 13:15 发表
- char buf1[10], buf2[10];
- fgets(buf1, sizeof(buf1), stdin);
- fgets(buf2, sizeof(buf2), stdin);
复制代码
我想请教一下, 如果在输入的时候, 第一次输入的大于了10个字节,那么剩下的字符将存放到 ...
一个比较笨拙的方法, 可以这样来做:
- char buf1[10];
- char buf2[10];
-
- char c;
- int i;
- memset(buf1, 0, sizeof(buf));
- memset(buf2, 0, sizeof(auf));
- i = 0;
- while ((c = getchar()) != '\n')
- {
- buf1[i] = c;
- i++;
- if (i == 10)
- {
- printf("error \n");
- break;
- }
- }
- buf1[sizeof(buf1)-1] = '\0';
- if (i == 10)
- {
- printf("i==10\n");
- while ((c=getchar()) != '\n' && c != EOF)
- ;
- }
- printf("buf1=%s\n", buf1);
- printf("len=%d\n", strlen(buf1));
- fgets(buf2, sizeof(buf2), stdin);
- printf("buf2=%s\n", buf2);
- printf("cuflen=%d\n", strlen(buf2));
复制代码
只是这种方式采用getchar()一个一个地读, 可能没有fgets看起来方便 . |
|