标题:今天看到个buffer,是。。。????
只看楼主
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 

理解char* cgets( char* String );函数就行

从键盘上读入字符存放到从buffer[2]起的内存空间中,直到它遇到回车符或者字符数超过buffer[0]指定的值为止。

返回的时候buffer[1]中保存的是读入的字符的实际个数,buffer[2]之后的空间才是你真正读入的内容。

#include<stdio.h>
#include<conio.h>

int main(void)
{
char buffer[82];
buffer[0] = 80;
cgets(buffer);
printf("Max\t: %d\n",buffer[0]);
printf("Count\t: %d\n",buffer[1]);
printf("String\t: %s\n",buffer+ 2);
getch();
return 0;
}

[此贴子已经被作者于2006-2-10 16:22:40编辑过]


淘宝杜琨
2006-02-10 16:21
超级新手
Rank: 2
等 级:论坛游民
帖 子:185
专家分:59
注 册:2006-2-9
得分:0 
You're right.
终于等到了。

谢谢

快快来我的群:13485998
学学C,玩玩算法,搞搞加密,比比谁更菜?
ARM恨死你。
2006-02-10 16:24
超级新手
Rank: 2
等 级:论坛游民
帖 子:185
专家分:59
注 册:2006-2-9
得分:0 
从控制台获取字符串。
char *cgets(char *buffer);
例程 需要的头文件 兼容性
cgets <conio.h> Win NT,Win 95
对于另外兼容性的信息,参见引言中的兼容性

LIBC.LIB单线程静态库,零售版本
LIBCMT.LIB多线程静态库,零售版本
MSVCRT.LIBMSVCRT.DLL的输入库,零售版本
返回值
cgets返回该字符串起始指针,也就是buffer[2]。没有错误返回。
说明
cgets函数从控制台读一个字符串,并存储该字符串和它的长度到buffer所指的位置。
buffer参数必须是一个字符串的指针。该数组最一个一个元素buffer[0]必须包含所读字符串的最大长度(以字符为单位),该数组必须包含保存该字符串、一个空结束字符('\0')和另两个字节的足够元素。该函数读字符直到读到一个回车换行组合(CRLF)或者指定的字符数,该字符串以buffer[2]开始存储,如果该函数读一个CR-LF,它存储空格字符('\0')。然后,cgets在第二个数组元素即buffer[1]中存储该字符串的实际长度。因为cgets被调用时激活所有的编辑键,所以按F3重复最后的项。
例子
/* CGETS.C: This program creates a buffer and initializes
* the first byte to the size of the buffer: 2. Next, the
* program accepts an input string using cgets and displays
* the size and text of that string.
*/
#include <conio.h>
#include <stdio.h>
void main( void )
{
char buffer[82] = {80}; /* Maximum characters in lst byte */
char *result;
printf( "Input line of text, followed by carriage return:\n");
result = cgets( buffer ); /* Input a line of text */
printf( "\nLine length = %d\nText = %s\n", buffer[1], result );
}
输出结果
Input line of text, followed by carriage return:
This is a line of text
Line length = 22
Text = This is a line of text.
参见
getc

/*网络转载*/

快快来我的群:13485998
学学C,玩玩算法,搞搞加密,比比谁更菜?
ARM恨死你。
2006-02-10 19:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-44975-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.267468 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved