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

Функция getline считывает несколько строк из файла, игнорируя символ новой строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Error C4430: отсутствует спецификатор типа - предполагается int http://www.cyberforum.ru/cpp-beginners/thread678631.html
ребят только начал осваивать азы на C++, и при свое первой программе натыкнулся на такое... Вот собственно мой код #include <stdio.h> main() { int a, b, c; scanf(" %d %d", &a, &b); c=a+b;
C++ Перевод из фарлонгов в ярды Парни, вот программа: #include <iostream> using namespace std; int yardix(int); int main () { int farl; cout<<"Vvedite Farlongu: "; cin>>farl; int yard=yardix(farl); http://www.cyberforum.ru/cpp-beginners/thread678618.html
C++ Найти элементы матрицы С как полсумы соответствующих элементов матриц А и В
задача: Дано матрицы А и В размером 6х6 каждая. Найти элементы матрицы С как полсумы соответствующих элементов матриц А и В. как это полсумы? только это не понятно
C++ Найти в строке количество введенных символов распологающихся между а и b
помогите пожалуйста только начал изучать))не могу полностью понять всего))
C++ Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива http://www.cyberforum.ru/cpp-beginners/thread678587.html
Есть программа #include <iostream> #include <algorithm> const int N = 5; int handSet(void) { int a; std::cout << "Введите число: ";
C++ Программа о принадлежности точки выпуклому многоугольнику Всем привет! Кому не трудно, объясните пожалуйста следующую программу- принадлежит ли точка заданному выпуклому многоугольнику. Очень надо понять ее от начала и до конца(((: #include <iostream> #include <cmath> using namespace std; const double eps = 1e-7; struct point { подробнее

Показать сообщение отдельно
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66
23.10.2012, 18:54  [ТС]
Цитата Сообщение от ksandro Посмотреть сообщение
чему у тебя равен параметр LINE?
Не может ли быть так что размер массива меньше чем длина строки?
Можешь выложить код целиком?
Могу, конечно. Параметр LINE - установил в 100, этого за глаза хватит для 1 строки.
Целиком это выглядит так:

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "stdafx.h"
#include <iostream>
#include <fstream>                  // for file I/O
#include <cstdlib>  
#include <string>
 
// support for exit()
 
const int SIZE = 60;
const int LINE = 100;
 
int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
    char filename[SIZE];
    ifstream inFile;        // object for handling file input
    ofstream outFile;               // create object for output
    outFile.open("Re-formattedSubtitle.txt");    // associate with a file
    
    cout << "Enter name of a subtile file you wish to convert: ";
    cin.getline(filename, SIZE);
    inFile.open(filename);  // ассоциируем файл
    if (!inFile.is_open())  // проверка на ошибку
    {
        cout << "Could not open the file " << filename << endl;
        cout << "Program terminating.\n";
        // cin.get();  
        exit(EXIT_FAILURE);
    }
    
    char sublines[LINE];
    char outlines[LINE];
    const int CUTOFF = 3;
    int counter = 0;
 
    while (inFile.good())   // считываем до EOF
    {
        
        inFile.getline (sublines, LINE, '\n');
                    if ((sublines[13] == '-') && (sublines[14] == '-') && (sublines[15] == '>'))
                        continue;               
                    else if ((sublines[0] == '\0') || (sublines[1] == '\0') || (sublines[2] == '\0') || (sublines[3] == '\0'))
                        continue;
                    else
                    {for (int i = 0, k = 0; sublines[i] != '\0'; i++)
                          { if (sublines[i+1] == '\0')
                            {outlines[k] = sublines[i]; 
                            outlines[k+1] = '\0'; }
                            else if ((sublines[i] == '<') && (sublines[i+1] == '/') && (sublines[i+2] == 'i') && (sublines[i+3] == '>') && (sublines[i+4] == '\0'))
                            {outlines[k] = '*';
                            outlines[k+1] = '/';
                            outlines[k+2] = '\0';
                            k += 2;
                            i += 3;}
                            else if ((sublines[i] == '<') && (sublines[i+1] == 'i') && (sublines[i+2] == '>') && (sublines[i+3] == '\0'))
                            {outlines[k] = '*';
                            outlines[k+1] = '/';
                            outlines[k+2] = '\0';
                            k += 2;
                            i += 3;}
                            else if ((sublines[i] == '<') && (sublines[i+1] == 'i') && (sublines[i+2] == '>'))
                            {outlines[k] = '/';
                            outlines[k+1] = '*';
                            k += 2;
                            i += 2;}
                            else if ((sublines[i] == '<') && (sublines[i+1] == '/') && (sublines[i+2] == 'i') && (sublines[i+3] == '>'))
                            {outlines[k] = '*';
                            outlines[k+1] = '/';
                            k += 2;
                            i += 3;}
                            else if ((sublines[i] == ' ') && (sublines[i+1] == ' '))
                            continue;
                            else 
                            {outlines[k] = sublines[i];
                            k++;}
                          }
                            outFile << outlines << " ";
                            for (int i = 0; sublines[i] < 100; i++)
                                sublines[i] = '!';
                        }                                           
                                            
    }
    if (inFile.eof())
        cout << "End of file reached.\n";
    else if (inFile.fail())
        cout << "Input terminated by data mismatch.\n";
    else
        cout << "Input terminated for unknown reason.\n";
    
    inFile.close();         
    outFile.close();              
    // cin.get();
    // cin.get();
    return 0;
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru