C语言 getline使用示例
时间: 2024-10-22 20:23:16 浏览: 32
在C语言标准库中并没有`getline`函数,这是C++的标准库提供的。但是如果你需要在C语言环境中实现类似的功能,你可以使用`fgets`函数配合一些额外的处理。下面是一个简单的例子,演示了如何从标准输入流读取一行,去掉末尾的换行符:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 自定义的getline函数
size_t myGetline(char *str, size_t size, FILE *stream) {
size_t i = 0;
str[i] = '\0'; // 初始化字符串为空
while (true) {
int ch = fgetc(stream);
if (ch == EOF || ch == '\n') {
str[i] = ch; // 如果遇到换行或EOF,结束循环并将它保存到字符串中
break;
} else if (i >= size - 1) { // 如果快达到最大大小,防止溢出
str[i] = '\0'; // 添加终止符
return i;
} else {
str[i++] = ch; // 否则,将字符追加到字符串
}
}
return i; // 返回实际读取的字符数(不包括终止符)
}
int main() {
char line[100];
size_t len;
printf("请输入一行文字:");
len = myGetline(line, sizeof(line), stdin); // 使用自定义getline读取用户输入
line[len] = '\0'; // 确保字符串以空字符结尾
printf("你输入的内容是:%s\n", line);
return 0;
}
```
在这个示例中,`myGetline`函数模拟了`getline`的行为,但它返回的是实际读取的字符数,而不是整行的计数。
阅读全文