首页 > 解决方案 > 当我从文本文件中读取时如何获取 char[] 的大小

问题描述

我正在读一个.txt文件。我最多需要将 254 个字符读入我的char*缓冲区,所以我这样做了:

char *buffer = new char[255];
***Some Code***
if (!feof(fichero))
{
    if (fgets(buffer, 254, fichero) != NULL)
    {

如何获取读取的缓冲区大小?现在我正在使用手动方法来查找'\n'并使用它的位置作为大小。但是有更好的方法吗?我现在的代码:

char *buffer = new char[255];
int tamanio;
***more code***
if (!feof(fichero))
{
    if (fgets(buffer, 254, fichero) != NULL)
    {
        //printarCadena(buffer);
        tamanio = limpiarBuffer(buffer);
        printf("Tamanio buffer: %i \n", tamanio);


int Gestor::limpiarBuffer(char* buffer)
{
    int i;
    for(i = 0; i < int(strlen(buffer));i++)
    {
        if(buffer[i] == '\n')
            return i;
    }
    return int(strlen(buffer) - 1);
}

编辑:我必须使用 Char*,大学氛围

Edit2:我必须逐行阅读,如果行超过 255 个字符,我会读为 2 行或更多行

标签: c++chartxt

解决方案


int getSize(char* buffer)
{
    int i;
    for(i = 0; i < int(strlen(buffer));i++)
    {
        if(buffer[i] == '\n')
            return i;
    }
    return strlen(buffer);
}

到目前为止,没有其他方法可以处理 char*


推荐阅读