0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 6
1

Одна ошибка в задаче

16.11.2015, 22:58. Показов 691. Ответов 2
Метки нет (Все метки)

Задача: Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое предложение начиналось с новой строки и между словами осталось только по одному пробелу.

Выдает ошибку: Line 22: error: invalid conversion from 'char*' to 'int'; ошибку понимаю, но как исправить не пойму.
Уважаемые форумчане, помогите, пожалуйста с этой задачкой для курсовой работы)
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
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
 
void newstr (char str[], int p); // прототип функции перевода каждого предложения на новую строку
void nospace (char *c1, char *c2); // прототип функции удаления пробелов
 
int main()
{
    int k=100; // количество символов в строке
    char *c1m=new char[k]; // исходный символьный массив
    ifstream fin("File1.txt"); // входной файл
    if (!fin) // если нет файла
    {
        cout<< "Error file"<<endl; // вывод сообщения об ошибке      
        return 1; // выход из программы, если нет файла
    }
    fin.getline (c1m,k); // чтение строки из файла в символьный массив
    fin.close(); // закрытие входного файла
    char *c2m=new char [k]; // выходной символьный массив
    newstr(c1m, c2m); // обращение к функции newstr
        nospace(c1m, c2m); // обращение к функции nospace 
    cout<<endl<<c2m<<endl; // вывод сформированной строки на экран
    ofstream fout("File2.txt"); // создание выходного файла
    fout<<c2m<<endl; // вывод сформированной строки в выходной файл
    fout.close(); // закрытие выходного файла
    system("pause");
    return 0;
}
 
void newstr (char str[], int p)
{
        for (int i=strlen(str); i >= p; i--)
          str[i+1] = str[i];
        str[p]='\n';         
}   
 
 
void nospace (char *c1, char *c2) 
{
    int j=0; // индекс символа в выходном массиве
    for (int i=0; c1[i]!=0; i++)// посимвольный просмотр исходной строки // (код конца строки =0 по ASCII)                                
    {
        if(c1[i]!=' ')
        {// текущий символ не пробел
            if(i!=0 && c1[i-1]==' ' && j!=0)
            {// не конец строки
                // предыдущий символ пробел
                // не первый символ в строке
                c2[j] = ' '; // запись пробела
                j++;
            }
            c2[j++]=c1[i]; // запись символа
        }
    }
    c2[j]='\0'; // запись нуль-символа в конец слова
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2015, 22:58
Ответы с готовыми решениями:

Ошибка в задаче
Заданы моменты начала и конца некоторого промежудка времени в часах минутах и секундах ( в пределах...

ошибка в задаче по программированию
При решении задачи была выявлена ошибка, идей , как ее решить, нет. Прошу помочь. описание ошибки:...

ошибка в задаче на палиндром
Ребят помогите пожалуйста. Задачка найти палиндром в массиве. Писал-писал и в итоге в ф-ии...

Ошибка в задаче на ряды
1.При некоторых заданных x и N, определяемых вводом, вычислить сумму N слагаемых заданного вида....

2
Модератор
Эксперт С++
12079 / 9758 / 5902
Регистрация: 18.12.2011
Сообщений: 26,195
17.11.2015, 09:54 2
Цитата Сообщение от igoris7676 Посмотреть сообщение
void newstr (char str[], int p);
Цитата Сообщение от igoris7676 Посмотреть сообщение
newstr(c1m, c2m); // обращение к функции newstr
2 параметр -целое число p, а Вы подсовываете массив c2m
1
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 6
17.11.2015, 16:54  [ТС] 3
То есть, мне вместо c2m подставить p ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2015, 16:54
Помогаю со студенческими работами здесь

ошибка в задаче с классом
для 2х матриц (A, B) определить кол-во строк, сумма элементов которых положительна ошибка в...

Ошибка в задаче о восьми ферзях
Суть задачи заключается в том, что нужно суметь расставить на шахматной доске (8 х 8) восемь ферзей...

Ошибка в задаче про массивы
Написал прогу,строго не судите,но какой то косяк здесь не знаю даже где,она должна Найти сумму...

Возникает ошибка в задаче на нахождения длинны планет
Условия задачи: Дано 9 планет,посчитать длину экватора,если известен радиус планет при отладке...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru