При работе с файлами после каждой строки вставляются буквы М

522
28 ноября 2016, 18:36

После каждой строкий вставленой из файла в массив появляется лишняя строка состоящая из буквы М

char str[10][25],d;
in=fopen("file.txt", "r");
for (int i = 0; i < 10; i++)
{
    printf("\n");
    for (int j = 0; j < 1; j++)
    {
        fgets(str[i], 300, in);
    }
}
for (int i = 0; i < 10; i++)
{
    printf("\n");
    for (int j = 0; j < 25; j++)
    {
        printf("%c",str[i][j]);
    }
}
system("pause");
return 0;
Answer 1

Как минимум - у вас строка str[i] рассчитана на 25 символов, а вы готовы читать 300: fgets(str[i], 300, in);...

И какой смысл в цикле

for (int j = 0; j < 1; j++)

??

А тут -

printf("%c",str[i][j]);

вы выводите все, весь мусор! а не останавливаетесь по достижении завершающего нулевого символа...

Вобщем, попробуйте так:

char str[10][300];
FILE * in=fopen("file.txt", "rt");
for (int i = 0; i < 10; i++)
{
    fgets(str[i], 300, in);
}
for (int i = 0; i < 10; i++)
{
    printf("%s",str[i]);
}
system("pause");
return 0;
READ ALSO
Сборка проекта VS для гугл-тестов через CMake

Сборка проекта VS для гугл-тестов через CMake

Есть исходный код, есть тест, есть CMakeListtxt

492
Получить информацию о томах

Получить информацию о томах

Как узнать, существует тот или другой том? Например, мне нужно сделать так:

497
Почему не работает функция applyForce?

Почему не работает функция applyForce?

Начал изучать cocos2d-x,но столкнулся с тем, что у меня не работают функции applyForce(), apllyImpulse(), applyTorque()Пытался гуглить, но подобной проблему...

447
Автоматическое разделение на страницы HTML содержимого

Автоматическое разделение на страницы HTML содержимого

Собственно задача такова - отобразить HTML документ в виде одной или нескольких страниц A4 (зависит от документа)Нужно для печати и окна предварительного...

505