0

我为文件分配了内存,以便能够从输入文件中读取。

((mem = (unsigned char *) malloc (filesize)) == NULL)

我从内存中读取它(技术上的文件)。此循环将读取内存内容并将每个字符写入另一个输出文件,直到达到预设限制,然后它将继续写入下一行(每行默认 40 个)。我让它正确读写,以及每行换行 40 行但是,输入文件有多个不同长度的行,并且写入新文件包括“\n”(新行),因此产生多个行长度但不超过 40。我需要检查何时有“\n”并跳过它。

这是我的问题,我不确定如何检查我是否点击了“\n”。

这是我悲伤的尝试(循环的一部分):

fread(mem, 1,filesize, inf);
for(i=0; i < filesize; i++)
{
*temp = mem[i];
    if (!strcmp(temp,"\n"));
        {
            i++;
        }
4

1 回答 1

1

mem是一个动态的字符数组,所以只需检查有问题的字符:

for(i=0; i < filesize; i++)
{
    if (mem[i] != '\n')
    {
         //   do stuff
    }
    //else it's a newline, don't do anything and we'll skip it when i increments next
}

你有没有注意到你有一个;after 你的if声明?

于 2012-12-07T19:15:17.010 回答