C++ 如何使用c字符串读取.txt文件?
我正在为学校做一个项目,我需要阅读文件中的文本 听起来很简单,但我的教授对这个项目有一个限制:没有任何条件 (“不允许使用字符串数据类型或字符串库。”) 我一直通过使用字符数组来解决这个问题;但是,我不知道如何使用字符数组从文件中读入C++ 如何使用c字符串读取.txt文件?,c++,arrays,char,fstream,ifstream,C++,Arrays,Char,Fstream,Ifstream,我正在为学校做一个项目,我需要阅读文件中的文本 听起来很简单,但我的教授对这个项目有一个限制:没有任何条件 (“不允许使用字符串数据类型或字符串库。”) 我一直通过使用字符数组来解决这个问题;但是,我不知道如何使用字符数组从文件中读入 这是另一个网站关于如何读取带有字符串的文件的示例 //读取文本文件 #包括 #包括 #包括 使用名称空间std; int main(){ 弦线; ifstream myfile(“example.txt”); 如果(myfile.is_open()) { whi
这是另一个网站关于如何读取带有字符串的文件的示例
//读取文本文件
#包括
#包括
#包括
使用名称空间std;
int main(){
弦线;
ifstream myfile(“example.txt”);
如果(myfile.is_open())
{
while(getline(myfile,line))
{
coutifstream
有一个名为get()
的方法,该方法将文件内容读入char
数组。get()
将指向数组的指针和数组大小作为参数,然后尽可能将数组填充到给定大小
返回get()
后,使用gcount()
方法确定已读取的字符数
您可以使用then和一个简单的逻辑循环,以size
-chunks格式将文件内容重复读取到一个数组中,并将读取的所有chunks收集到一个数组中,或者std::vector
ifstream
具有一个名为get()的方法
将文件内容读入char
数组。get()
将指向数组的指针和数组大小作为参数;然后尽可能将数组填充到给定大小
返回get()
后,使用gcount()
方法确定已读取的字符数
您可以使用then和一个简单的逻辑循环,以size
-chunks格式将文件内容重复读取到一个数组中,并将所有读取的chunks收集到一个数组中,或使用std::vector
使用cin.getline
。有关格式,请参阅此网站:
你可以这样写:
ifstream x("example.txt");
char arr[105];
while (x.getline(arr,100,'\n')){
cout << arr << '\n';
}
ifstream x(“example.txt”);
char-arr[105];
while(x.getline(arr,100,'\n')){
无法使用cin.getline
。有关格式,请参阅此网站:
你可以这样写:
ifstream x("example.txt");
char arr[105];
while (x.getline(arr,100,'\n')){
cout << arr << '\n';
}
ifstream x(“example.txt”);
char-arr[105];
while(x.getline(arr,100,'\n')){
cout您可以使用int i=0;while(scanf(“%c”)和&str[i++])!=EOF)
来判断文本输入的结束。str
是您想要的字符数组include换行符,而i
是输入大小
C++中,也可以使用<代码>(CIN,GETLILE())< /C> >每行循环读取:
istream&getline(char*s,streamsize n,char delim);
如下所示:
const int SIZE = 100;
const int MSIZE = 100;
int main() {
freopen("in.txt", "r", stdin);
char str[SIZE][MSIZE];
int i = -1;
while (cin.getline(str[++ i], MSIZE)) {
printf("input string is [%s]\n", str[i]);
}
}
您可以使用int i=0;while(scanf(“%c”)和&str[i++])!=EOF)
来判断文本输入的结束。str
是您想要的字符数组include newline,而i
是输入大小
C++中,也可以使用<代码>(CIN,GETLILE())< /C> >每行循环读取:
istream&getline(char*s,streamsize n,char delim);
如下所示:
const int SIZE = 100;
const int MSIZE = 100;
int main() {
freopen("in.txt", "r", stdin);
char str[SIZE][MSIZE];
int i = -1;
while (cin.getline(str[++ i], MSIZE)) {
printf("input string is [%s]\n", str[i]);
}
}
如果没有字符串、只有空字符串“”或只有退出,您需要什么结果?@vinllen我在这里引用规则:“不允许使用字符串数据类型或字符串库。”如果你的老师真的把它放在所有的大写字母中,并且没有明确说明你不能使用std::vector
,我会使用std::vector
。看看文本文件包含什么?这很重要,因为如果它包含数字,那么你不需要字符串,如果它包含文本,那么你应该使用char*你需要什么结果d如果没有遇到字符串,只遇到一个空字符串“”,或者什么都没有,只有退出?@vinllen我在这里引用规则:“不允许使用字符串数据类型或字符串库。”如果你的老师真的把它放在所有的大写字母中,并且没有明确说明你不能使用std::vector
,我会使用std::vector
。看看文本文件包含什么?这很重要,因为如果它包含数字,那么你就不需要字符串,如果它包含文本,那么你应该使用char*,而的确切位置是什么e> istream&getline(char*s,streamsize n,char delim);
go?我有点困惑,istream&getline(char*s,streamsize n,char delim);
go?我有点困惑