Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
#1

Убрать запятые - C++

12.02.2013, 10:40. Просмотров 1245. Ответов 6
Метки нет (Все метки)

Добрый день. У меня в файле (temp.txt) находятся цифры через запятую
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1
1,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1
Не получается урать запятые и поставить пробелы вот так в файл output.txt чтобы потом эти цифры загнать в массив int
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1
1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Из файла у меня получается загнать в массив если нет запятых.
Пробовал так но не получается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        fstream r;
        r.open("temp.txt", ios::in);
        fstream o;
        o.open("output.txt", ios::in);
        AnsiString c;
        AnsiString fr;
        while (r>>c.c_str())
        {
          if (c!=",") {
           fr=c+fr;
          }
          else{
          o<<fr.c_str();
          fr="";
          }
 
        }
Заганяю в массив таким образом
C++
1
2
3
4
5
6
7
8
fstream te;
        te.open("output.txt", ios::in);
        int otvet[100][100]; // массив ответов
        for (int i = 0; i < kolsepei; i++) {
            for (int t = 0; t < kv + 1; t++) {
                te >> otvet[t][i];
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 10:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Убрать запятые (C++):

надо убрать запятые а числа расположить в столбик и вывести все это во второе поле TMemo - C++
Привет всем вообщем помогите с программой ) у нас есть поле TMemo в котором числа расположены числа вида 1231243,123543,21454... и так...

Заменить все пробелы на запятые, а запятые на точки. Посчитать количество запятых во введенной строке - C++
Во введенной строке заменить все пробелы на запятые, а запятые на точки. Посчитать количество запятых во введенной строке. Нужно написать...

Удалить из строки все запятые. - C++
Люди, помогите решить задачу в Turbo C++ (там где printf и scanf): Удалить из строки все запятые.

Удалить из строки все запятые - C++
Дана строка до точки, группа символов в которой между пробелами считается словом,знаки препинания от слова пробелом не отделяются. ...

Вывод предложений, не содержащих запятые - C++
Ребят, помогите пожалуйста написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие...

Вывести предложения содержащие запятые - C++
Надо написать программу которая выводит на экран только те предложения, которые содержат запятые. я написал программу. ...

6
nonedark2008
933 / 672 / 148
Регистрация: 28.07.2012
Сообщений: 1,837
12.02.2013, 11:10 #2
Считываешь число, затем считываешь запятую, а затем снова число и т. д.
0
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
12.02.2013, 11:17  [ТС] #3
Каким образом? Я знаю как считывать до пробела а тут запятые. А как считывать до запятой?
0
nonedark2008
933 / 672 / 148
Регистрация: 28.07.2012
Сообщений: 1,837
12.02.2013, 11:20 #4
Если у тебя в файле есть 1,2,3 и ты из потока попытаешься считать число, то считается 1 и в потоке будет ,2,3 Остается считать один символ char, а затемесли считать опять число, то получишь 2.
0
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
12.02.2013, 11:42  [ТС] #5
Сделал так все равно не получается, если же конечно я тебя правильно понял
C++
1
2
3
4
5
6
7
8
9
10
11
        fstream te; int w=1;
        te.open("temp.txt", ios::in);
        int otvet[100][100]; // массив ответов
        for (int i = 0; i < kolsepei*2-1; i++) {
            for (int t = 0; t < (kv + 1)*2-1; t++) {
               if (w=1) {
                 te >> otvet[t][i]; w=0;
               }
                else{w=1;}
            }
        }
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
12.02.2013, 13:47 #6
Можно сделать с помощью std::replace_copy:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
#include <iterator>
#include <algorithm>
 
 
int main() {
    std::ifstream ifs("temp.txt");
    std::ofstream ofs("output.txt");
    std::replace_copy(
          std::istreambuf_iterator<char>(ifs)
        , std::istreambuf_iterator<char>()
        , std::ostreambuf_iterator<char>(ofs)
        , ','
        , ' ');
}
Ну или "вручную":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <fstream>
 
 
int main() {
    std::ifstream ifs("temp.txt");
    std::ofstream ofs("output.txt");
    ifs >> std::noskipws;
    for (char ch; ifs >> ch; ) {
        if (ch == ',') {
            ch = ' ';
        }
        ofs << ch;
    }
}
Добавлено через 4 минуты
Цитата Сообщение от иван_пропал Посмотреть сообщение
C++
1
if (w=1) { /* ... */ }
Всё таки так наверное:
C++
1
if (w == 1) { /* ... */ }
1
Avazart
Эксперт С++
7236 / 5432 / 304
Регистрация: 10.12.2010
Сообщений: 24,143
Записей в блоге: 17
12.02.2013, 14:47 #7
boost/spirit,
boost::split,
boost::tokenizer,

Добавлено через 45 минут
А да... самое наверное простое использовать getline указав разделитель ',' как разделитель delim
C++
1
getline(fs,str,',');
http://www.cplusplus.com/reference/string/string/getline/
1
12.02.2013, 14:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 14:47
Привет! Вот еще темы с ответами:

В строке заменить все запятые на точку - C++
В строке заменить все запятые на точку. Подсчитать количество замен.

найти ошибку(запятые или скобки) - C++
Где-то намикимаусил, не вижу где)) #include&lt;iostream.h&gt; main() { int i,j=1; cout&lt;&lt;&quot;2\t3\t5\t7\t11\t13\t17\t23\t29\t31\n&quot;; ...

В данной строке все запятые заменить на точки - C++
Помогите пожалуйста новичку с первой работой на С++ или объясните, как дописать while. Условие задачи: В данной строке все запятые &quot;,&quot;,...

Преобразовать последовательность S1,....Sn удалив из нее все запятые - C++
1) Даны натур. числа n,символы S1,....Sn среди которых есть хотя бы одна точка. Преобразовать последовательность S1,....Sn удалив из нее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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