一、fgets头文件
fgets头文件是一个经典的C语言输入输出函数,其定义如下:
#include <stdio.h>
char *fgets(char *str, int n, FILE *stream);
其中,参数str表示字符数组的指针,即输入时存储的数据;参数n表示字符数组的长度,即待读取字符串的最大长度;参数stream表示文件指针,即待读取的文件。fgets函数的作用是从文件中读取一行字符,它会读取换行符并将其存储到字符数组str中,同时自动添加字符串结束标志’\0’。
二、getline的头文件
getline头文件是在C++11中引入的头文件,其定义如下:
#include <string>
std::getline(std::istream& is, std::string& str, char delim);
其中,参数is表示输入流的引用,即待读取的数据源;参数str表示一个string类型的引用,即输入时存储的数据;参数delim表示一个字符,即定界符,表示输入数据的行尾符号(默认为’\n’)。getline函数的作用是从输入流中读取一行字符,并将其存储到字符数组str中,同时自动添加字符串结束标志’\0’。
三、getline函数用法
getline函数的用法与fgets函数类似,但是它的返回值是一个输入流的引用,表示是否读取成功。其基本用法如下:
#include <iostream>
#include <string>
using namespace std;
int main() {
string line;
getline(cin, line);
cout << "输入的字符串:" << line << endl;
return 0;
}
在上述代码中,我们引入了和两个头文件,并使用了getline函数从输入流cin中读取一行字符,并将其存储在line字符串中,并在控制台输出该字符串。
四、getchar的头文件
getchar头文件也是一个经典的C语言输入输出函数,其定义如下:
#include <stdio.h>
int getchar(void);
getchar函数的作用是从标准输入设备(也就是键盘)中读取一个字符,并将其返回给程序。这个函数的返回值为int类型,表示读取的字符码值,注意:当出错或EOF时,函数返回EOF。
五、getline怎么用
getline函数需要使用string头文件,其常用的几种用法如下:
方式一:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str);
cout << "输入的字符串是:" << str << endl;
return 0;
}
上述代码可以从标准输入中读取一行字符,并将输入行存储到一个string类型的变量中。
方式二:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
int n = 10;
getline(cin, str);
cout << "读取的字符串是:" << str << endl;
cout << "读取的字符串长度是:" << str.size() << endl;
cout << "取出前" << n << "位是:" << str.substr(0, n) << endl;
return 0;
}
这段代码的功能是从标准输入中读取一行字符,计算字符串的长度,取出字符串前10位并输出。
方式三:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
string delimiter = ","; // 定义分隔符
size_t pos = 0;
string token;
getline(cin, str);
while ((pos = str.find(delimiter)) != string::npos) { // 找到分隔符
token = str.substr(0, pos); // 取出分隔符之前的字符串
cout << token << endl; // 输出分隔符左侧的字符串
str.erase(0, pos + delimiter.length()); // 将字符串向右移动
}
cout << str << endl; // 输出剩余的字符串
return 0;
}
这段代码的功能是读取一行带有逗号分隔符的字符串,并输出其中的每一个部分。
六、getline重载
在C++中,getline函数还有另一个重载版本:
basic_istream& getline(basic_istream& is, basic_string<CharT,Traits,Allocator>& str);
该函数与前面的getline函数不同之处在于,在该函数中可以不指定定界符,即该函数会读取输入流中的所有字符,直到读取到”\n”或EOF为止。该函数返回一个istream类型的引用。
七、getline函数用法头文件
使用getline函数时需要引入头文件。如:
#include <string>
#include <iostream>
using namespace std;
int main() {
string s;
getline(cin, s);
for (char c : s) {
cout << c << endl;
}
return 0;
}
上述代码读取一行字符串,并输出字符串中的每一个字符。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/192348.html