新手求助,getline函数的问题
本帖最后由 A529231559 于 2020-2-27 18:04 编辑#include<iostream>
#include<string>
#include<fstream>
#include <sstream>
void write_data(char* fname, string* data2) {
ifstream iff2;
char data1;
char data_111;
iff2.open(fname);
int i = 0;
while (!iff2.getline(data1, 60).fail())
{
data2 = data1;
getline(data_111, data2, ',');
i++;
}
为什么geiline会报错的,我看其他人的getline的是有这个功能啊。
我用的是visual studio2019
我的目的是将接收的字符串(里面有逗号)通过逗号分隔,分别赋值。 请用代码格式发代码,不然会认为是斜体 https://blog.csdn.net/duan19920101/article/details/50782816 本帖最后由 A529231559 于 2020-2-27 18:07 编辑
qiuyouzhi 发表于 2020-2-27 18:00
https://blog.csdn.net/duan19920101/article/details/50782816
和我的情况不太一样啊,我就问下这个输入流不是cin不行吗?我现在设置的输入流是读取了txt文件的一行
或者说我把我从txt里面读取的字符串通过逗号分隔需要怎么处理 A529231559 发表于 2020-2-27 18:06
和我的情况不太一样啊,我就问下这个输入流不是cin不行吗?我现在设置的输入流是读取了txt文件的一行
cin不是从键盘读取吗。。。 qiuyouzhi 发表于 2020-2-27 18:07
cin不是从键盘读取吗。。。
只能是通过cin输入吗?{:5_104:}
那有其他方法吗:把从txt文件里面读取的一行字符串,然后通过逗号将他们分隔 是一个字符一个吗?
比如q,i,u,y,o,u,z,h,i qiuyouzhi 发表于 2020-2-27 18:10
是一个字符一个吗?
比如q,i,u,y,o,u,z,h,i
我的是这个啊啊啊,djqqc,429,221
这种格式的 A529231559 发表于 2020-2-27 18:12
我的是这个啊啊啊,djqqc,429,221
这种格式的
emmmm
那我就没什么办法了
要是一个一个的还有思路 qiuyouzhi 发表于 2020-2-27 18:14
emmmm
那我就没什么办法了
要是一个一个的还有思路
{:5_104:}好吧 while (!iff2.getline(data1, 60).fail())
改为while(iff2>>data)就可以从文件流中读取到了
卖橘子的柚子 发表于 2020-2-27 23:24
while (!iff2.getline(data1, 60).fail())
改为while(iff2>>data)就可以从文件流中读取到了
读取是没有问题的。。。就是 这个getline貌似我搞错了。。。。。getline只能算是cin的一种,我现在是直接读取不算cin了。。。。 A529231559 发表于 2020-2-27 18:15
好吧
#include<iostream>
#include<string>
using namespace std;
int main() {
string a;
string b;
string c;
string d;
string h;
int e;
int f;
int g;
a = "折扣价发送,asdfassd,432,123";
e = a.find(",");
f = a.find( ",",e+1);
g = a.find(",", f + 1);
cout << "第一个逗号的位置:"<<e << endl;
cout << "第二个逗号的位置:"<<f << endl;
cout << "第三个逗号的位置:"<<g << endl;
b = a.substr(0,e);
c = a.substr(e+1, f-e-1);
d = a.substr(f+1, g-f-1);
h = a.substr(g+1);
cout << b << endl;
cout << c << endl;
cout << d << endl;
cout << h << endl;
}
自己给自己想了一个办法去读取这个数据了{:5_108:}
页:
[1]