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

Использование getline(*, *, '\'); - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод информации о платежах, дата которых введена с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1195206.html
Добрый день. Я работаю со структурой, представляющей платёж. Сама структура выглядит таким образом: struct PLATEJ { char name; int rs; int sum; int date; }; , где name - название банка, rs- расчётный счёт, sum- сумма платежа, date- дата платежа(массив из 3-х чисел).
C++ Составить блок-схему по этой программе --------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #include<iostream.h> #include <math.h> #include <stdio.h> #pragma argsused http://www.cyberforum.ru/cpp-beginners/thread1195203.html
C++ Заменить всякое вхождение слова "это" на слово "то"
Заменить каждое вхождение слова "это" на слово "то". Прошу помощи! #include <iostream> #include <Windows.h> #include <string> using namespace std; char str_rus;
C++ Как инициализировать массив строк в конструкторе
File.h class CTest { public: char* m_pszText; CTest( )
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread1195169.html
Дан текстовый файл. Получить строку, в которой наибольшее число знаков препинания.
C++ Обработка файлов На диске имеется файл данных STUDENT.DAT. Упорядочить список студентов по оценке, полученной на экзамене по мат. анализу и распечатать его. подробнее

Показать сообщение отдельно
Salabim
0 / 0 / 1
Регистрация: 27.09.2011
Сообщений: 74
01.06.2014, 10:22     Использование getline(*, *, '\');
Добрый день!
Пишу простенькую программу для сравнения путей к файлам, почти закончил ее. Алгоритм готов, осталась общая отладка, во время которой вспомнил, что с использованием в getline ограничивающего символа '\' (которым разделяются каталоги в пути к файлу) у меня вышли проблемы, тогда не было времени разбираться, однако сейчас в этом я обнаруживаю необходимость.

Когда я использую '\', компилятор говорит об отсутствии закрывающей скобки и "newline в константе", очевидно, это связано с тем, что '\' используют различные символы форматирования вроде '\n' или '\t', или нулевой символ '\0', но как заставить getline работать именно с таким слешем?
Заранее благодарю.

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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "RUS");
 
    ifstream input("input.txt");
    string str1[100], str2[100], str_t1, str_t2;
    int count_slash_1 = 0, count_slash_2 = 0, n = 0, g_count, 
        count_of_found = 0, t_count_1 = 0, t_count_2 = 0;
 
    getline(input, str_t1);
    getline(input, str_t2);
    input.seekg(0, ios::beg);
 
    for (int i = 0; str_t1.length() > i; i++) { if (str_t1[i] == '/') { count_slash_1++; } }
    for (int i = 0; str_t2.length() > i; i++) { if (str_t2[i] == '/') { count_slash_2++; } }
 
    if (count_slash_1 > count_slash_2) { g_count = count_slash_1; }
    else { g_count = count_slash_2; }
 
    int count_for_output = g_count;
    int g_count_t_1 = g_count;
    int g_count_t_2 = g_count;
 
    while (g_count_t_1 > 0)
    {
        getline(input, str1[t_count_1], '/');
        g_count_t_1--;
        t_count_1++;
        if (g_count_t_1 == 0)
        {
            getline(input, str1[t_count_1]);
        }
    }
 
    while (g_count_t_2 > 0)
    {
        getline(input, str2[t_count_2], '/');
        g_count_t_2--;
        t_count_2++;
        if (g_count_t_2 == 0)
        {
            getline(input, str2[t_count_2]);
        }
    }
 
    int loc_count = 0;
    while (g_count > 0)
    {
        if (str1[loc_count] == str2[loc_count]) { count_of_found++; }
        else { break; }
        g_count--;
        loc_count++;
    }
 
    if (count_for_output == count_of_found)
    {
        cout << "Количество совпадающих каталогов - " << count_of_found << " из " << count_for_output << endl;
        cout << "Каталоги полностью совпадают" << endl;
    }
    else
    {
        cout << "Количество совпадающих каталогов - " << count_of_found << " из " << count_for_output << endl;
    }
 
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru