我有一个小任务,部分要求我从字符串形式的文件中获取输入并将它们放入char数组中,这样我就可以检查字符串是否包含任何'*'字符。
我已经能够成功地从文件中提取字符串,但是我没有找到将它们放在char数组中的方法,因此我可以处理它们。
如果有人让我知道如何使用cstring库将字符串放入char数组中,我将非常感激。请记住,字符串是从文件中获取的,而不是用户输入。
我试过的一些方法如下:
//Try 1
char CstringArray[] = LineFromFile;
//Try 2
char CstringArray[100] = LineFromFile;
//Try 3
ifstream Test("Test.txt");
Test>>CstringArray;
//Try 4
ifstream Test("Test.txt");
Test>>CstringArray[0];
非常感谢
答案 0 :(得分:0)
由于这是一项任务,你的教授可能不会对你使用C ++的所有功能感到满意,特别是如果你不理解它,但因为它是一个单行,我想我会告诉你我是怎么做的以星号结尾打印所有string
个。鉴于您已成功将文件打开到ifstream Test
,您可以执行以下操作:
copy_if(istream_iterator<string>(Test), istream_iterator<string>(), ostream_iterator<string>(cout, " "), [](const auto& i) { return !empty(i) && i.back() == '*'; })
修改强>
istream_iterator
来阅读string
和Test
中的每个istream_iterator
,我会立即对这些值进行操作,但如果您需要启动通过将所有string
保存到vector<string>
,您也可以执行此操作:vector<string> CstringArray{ istream_iterator<string>(Test), istream_iterator<string>() }
ostream_iterator
直接流式传输我选择的string
而不是存储它们copy_if
来迭代所有流入的string
,只选择那些符合给定条件的<{li}>
[](const auto& i) { return !empty(i) && i.back() == '*'; }
来有条件地选择以星号字符结尾的非空字符串