我有越来越每隔一行空输出与此代码的问题。所需的输出是:http://paste.ubuntu.com/1354365/获得所有其他行空输出
虽然我得到:http://paste.ubuntu.com/1356669/
没有人有,为什么我得到每隔一行这些空行的想法?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *fp;
FILE *fw;
int main(int argc, char *argv[]){
char buffer[100];
char *fileName = malloc(10*sizeof(char));
char **output = calloc(10, sizeof(char*));
char **outputBuffer = calloc(10, sizeof(char*));
fw = fopen("calvin.txt", "w+");
for(int y = 0; y < 6; y++){
for(int i = 0; i < 10; i ++)
{
output[i] = malloc(100);
}
for(int x = 0; x < 12; x++){
sprintf(fileName,"part_%02d-%02d", x, y);
fp = fopen(fileName, "rb");
if(fp == NULL)
{
printf("Kan ikke åpne den filen(finnes ikke/rettigheter)\n");
}
else if(fp != NULL){
memset(buffer, 0, 100);
for(int i = 0; i < 10; i++){
outputBuffer[i] = malloc(100);
}
fread(buffer, 1, 100, fp);
for(int i = 0; i < 100; i++){
if(buffer[i] == '\0')
{
buffer[i] = ' ';
}
else if(buffer[i] == '\n')
{
buffer[i] = ' ';
}
}
for(int i = 0; i < 10; i++) {
strncpy(outputBuffer[i], buffer + i * 10, 10);
strncat(output[i], outputBuffer[i]+1, 11);
}
}
}
for(int i = 0; i < 10; i++){
printf("%s\n", output[i]);
}
}
fclose(fp);
free(fileName);
}
是你的输入文件创建于Windows?如果是这样,那么您的代码行可能会以\ r \ n而不是\ n结尾,而您的代码似乎只能检查\ n。 – atkretsch
更改此:“RB”这样的:“R”,看看是否让你更接近你在找什么。 – WhozCraig
我在Ubuntu上创建了这个文件,我尝试过使用“r”和“rb”。似乎没有区别 – user1822221