Форум программистов, компьютерный форум CyberForum.ru

Чтение строки из файла дает неправильный вывод - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ функции в с++ http://www.cyberforum.ru/cpp-beginners/thread707459.html
Помогите, пожалуйста, как преобразовать данный код в код с функциями... (в с++) заранее спасибо. #include<iostream> #include<math.h> using namespace std; int main() { long double x, sum, eps=0.0001, z, A, B, delta; int i, k;
C++ Найти ln(x) используя разложением в ряд (элементарная задача) Извините, но я в математике в области логарифмов, диф.уравнений и интегралов тупой как пробка и забываю что решал очень быстро, подскажите пожалуйста как это считаеться http://s001.***********/i195/1211/86/f409367099a5.png Я так понимаю задача элементарная, да и вообще там суть в том что продемонстрировать вывод в gui и на др. яп,но мне с++ родней и код на нём мне будет понятнее. Подскажите... http://www.cyberforum.ru/cpp-beginners/thread707450.html
Проверить, есть ли в трехразрядном числе одинаковые цифры C++
Доброго времени суток всем, Прошу помощи, я новичек по этому не сильно кричите.. Есть бешенное желание научиться писать на Си++, поступил на нужный факультет и вот уже скоро сессия, а я не могу сделать ничего, не понимаю вообще... В интернете искал, нашел мало чего, ничего не понял... В общем мне нужно чтобы при вводе трехзначного числа, программа проверяла есть ли одинаковые цифры,...
Умножение 2х пногочленов C++
Помогите сделать. Нужно написать программу для умножения 2х многочленов, использую односвязные списки.
C++ Прерывание ввода http://www.cyberforum.ru/cpp-beginners/thread707427.html
Я написал программу, которая просит пользователя ввести массив, потом отображает его, и после заново отображает, но только в реверсивном порядке. Прога работает исправно, но у меня есть один вопрос. Как сделать так, чтобы прога обрывала ввод тогда, когда пользователь вводит нечисловое значение? Ато мой алгоритм почему-то не работает :( Вот код: #include <iostream> #include <cctype> using...
C++ Не получается задача с годами Задача такая : пользователь вводит год, программа должна вывести сколько дней в этом году(365 или 366). программа должна посчитать если год/4-високосный (366 дней), за исключением тех которые делятся на 100, но не делятся на 400... 1)как реализовать эту проверку 2)есть ли в vs12 elseif(так как он выдает ошибку { IntelliSense: идентификатор "elseif" не... подробнее

Показать сообщение отдельно
Alpi
104 / 0 / 1
Регистрация: 16.11.2012
Сообщений: 41
24.11.2012, 17:19  [ТС]     Чтение строки из файла дает неправильный вывод
На самом деле, я только стартовал изучать С++ и тестирую все грабли. Вроде теорию для релализации нужного мне кода освоил по книжкам.
Стараюсь изучать на прикладных задачах, иначе просто тону в информации.
Вывод будет так же в файл, вывод в консоль осуществляется на данном этапе в целях быстрого контроля процесса.

Цель кода - заполнение структуры из файла.
Пока ни фига не заполняется, посмотрите, пожалуйста, в чем проблема дальше? Читал тут разные темы, но сам не смог разобраться.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <fstream>
 
using namespace std;
 
int main () {
    int i = 0, g = 0;
    
    struct Main_Struct{ //create a struct acc to the file description
        char name[15];
        char struct_string[1001];
        
    }man[10];
    char name_string[14];
    FILE *file;
    file = fopen("/Users/alex/Downloads/unt.txt", "r");
 
    
    while ( fgets(name_string, 1024, file) ){
        cout << name_string;
        if (name_string[0] == '>')
        {
            while (g < 15) {
                man[i].name[g] = name_string[g];
                g+=1;
            }
            i+=1;
        }
       
    }
    fclose(file);
    cout << i << endl;
    cout << man[0].name;
    cout << man[1].name;
    
    return 0;
}
Вывод получается вот такой, т.е. выводятся все строки, подсчитывается количество будущих заголовков, но массив name внутри структуры не заполняется.

>The 1
Oh, let the sun beat down upon my face, stars fill my dreams
I am a traveler of both time and space, to be where I have been
>The 2
To sit with elders of the gentle race, this world has seldom seen
They talk of days for which they sit and wait, all will be revealed
2
ays for which they sit and wait, all will be revealed


Добавлено через 7 минут
И в конце перевернутый знак вопроса, сюда он не копипастится.

Добавлено через 6 минут
Знак вопроса решил - не совпадали размеры массивов name_string[14] и name[15]

Добавлено через 2 часа 19 минут
Отладка показала, что строка попадает в man[0].name, но после окончания чтения файла бесследно оттуда исчезает и заменяется непонятным куском.

Что я делаю не так?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru