读取文件并存储在字符数组中-C ++

时间:2018-11-10 18:08:33

标签: c++ arrays char readfile ifstream

我试图打开一个文件,并将信息保存在一个字符数组中,但是我没有得到它。要保存在字符串中,请使用以下命令:

dat

而且有效。 当我使用字符数组时,我的代码如下:

d

ReadFile函数是这样的:

ele.dat('this will be surrounded by CDATA delimiters');

1 个答案:

答案 0 :(得分:0)

要读取字符或文本数组,可以使用std::getlinestd::string

std::string text;
std::getline(myfile, text);

要处理文件中的文本行:

std::string text;
while (std::getline(myfile, text))
{
  Process_Text(text);
}

请勿使用字符数组,因为它们可能会溢出。另外,您不必使用==进行比较,而必须使用strcmp。始终验证您的字符数组是否以nul字符'\0'终止,否则字符串函数将超出您的数组,直到找到nul才停止。

编辑1:空格
要阅读以空格分隔的文本,请使用:

std::string text;
myfile >> text;

编辑2:计算字符串中的字符
您可以使用另一个数组来计算字符串中的字符。

unsigned int frequency[128] = {0}; // Let's assume ASCII, one slot for each character.
// ... read in string
const size_t length(text.length());
for (size_t index = 0; index < length; ++index)
{
  const char letter = text[index];
  ++frequency[letter];
}