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

c++ работа с файлом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чём тут дело??? http://www.cyberforum.ru/cpp-beginners/thread234115.html
программы то зфцыкливаются, то вообще ни чего не выводят. Вводится последовательность из N вещественных чисел. Определить среднее арифметическое среди кратных 7 элементов последовательности #include <iostream> using namespace std; int main() {
C++ Программирование разветляющихся вычислительных процессов Выяснить, пересекаются ли кривые у=аx3+bx2+сx+d и y=ex3+fx2+gx+h. При положительном ответе найти точки пересечения. http://www.cyberforum.ru/cpp-beginners/thread234112.html
C++ C++...
Всем привет) Может кто помочь в том, в чём я не шарю?)) Одну из задач так же надо решить на Delphi. 1. Напишите программу, которая для введенного целого трехзначного числа определяет, какая цифра в числе является первой, какая – второй и какая – третьей. 2. Напишите программу, которая по введенному номеру месяца выводит сообщение о том, какое сейчас время года. 3. Напишите программу,...
C++ НОД
Извиняюсь за вопрос, просмотрел все но не нашел того, что нужно Задание: Найти НОД 2 чисел # include <iostream> # include <conio.h> using namespace std; int main(){ int a,b,i; cout<< "vvedite 2 4isla";
C++ на что можно заменить функцию? http://www.cyberforum.ru/cpp-beginners/thread234102.html
#include <vcl.h> #include <iostream.h> #include <iomanip.h> float yearzp(float z); //описание функции годовая 3/п const int m=20; //кол-во символов в строке struct worker //описание структуры {char surname, //Фамилия name; //Имя float zp; //З/п сотрудника за каждый месяц
C++ random number<<is the code true? # include <iostream> using namespace std; void main () { setlocale (LC_ALL,"rus"); int a,b,c,d,count; a = rand()%8+2; b = rand()%8+2; c = 1; count = 0; подробнее

Показать сообщение отдельно
sadok
14 / 14 / 0
Регистрация: 26.01.2011
Сообщений: 64
31.01.2011, 00:21  [ТС]     c++ работа с файлом
потому что в моём коде ето указатель на массив чара,тоесть мы должны присвоить массив

Добавлено через 9 часов 35 минут
переписал программу,на векторе состоящий из строк
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
#include "my.h"
vector <string> mas2;
vector <string> mas;
    string tmp;
int main()
{
    setlocale (LC_CTYPE, ".1251"); 
    setlocale (LC_MONETARY, ".1251"); 
    ifstream in("ip.txt");
    if(!in){
        printf("Ненайден файл ip.txt");
        return 0;}
    cout<<"Файл найден,приступаем:";
    while(getline(in,tmp,'\n')){    // считываем пока считывается 
     mas.push_back(tmp);// запихиваем в vector
      }
    /*for(int i=0;i<mas.size();++i)
    cout<<'\n'<<(mas)[i];*/
    in.close();
    dmain();
    _getch();
}
void dmain()
{
    int t=dedit();//преобразовываем массив из 22.134.2.2/45  в 022.134.002.002/045
    if(!(t==-1) && !(t==0)) cout<<"\nошибка в "<<t<<"-й строке";
    dmakemas();//разделяем по  '/' на два елемента массива
    dwrite();//записываем данные в файл
}
int dedit()
{
    int num=0;//количество строк
    int n=0;//количество знаков до значущой цыфры
    int ncol;//на сколько нужно добавить к индексу массива для сходства редактированого и нередактир.
    //равно трём т.к. первая точка встретится на 4-м индексе    
    for(int i=0;i<mas.size();++i)
    {
        ncol=3;
        n=0;
        num=0;
        for(int x=0;x<=mas[i].length();x++)
        {
            if(n>3) return i+1;//проверка на количество знаком между знаками препинания 
            switch(mas[i][x])
            {
            case '.':
                switch(n)//добавляем к ncol 4 потому,что следующая точка будет через 4-е индекса
                {
                case 3:tmp[ncol-3]=mas[i][x-3];tmp[ncol-2]=mas[i][x-2];tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                case 1:tmp[ncol-3]='0';tmp[ncol-2]='0';tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                case 2:tmp[ncol-3]='0';tmp[ncol-2]=mas[i][x-2];tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                }
                ncol+=4;n=0;num++;break;
            case '/':
                switch(n)//добавляем к ncol 4 потому,что следующая точка будет через 4-е индекса
                {
                case 3:tmp[ncol-3]=mas[i][x-3];tmp[ncol-2]=mas[i][x-2];tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                case 1:tmp[ncol-3]='0';tmp[ncol-2]='0';tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                case 2:tmp[ncol-3]='0';tmp[ncol-2]=mas[i][x-2];tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                }
                ncol+=4;n=0;num++;break;
            case '\n':
                switch(n)
                {
                case 3:tmp[ncol-3]=mas[i][x-3];tmp[ncol-2]=mas[i][x-2];tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                case 1:tmp[ncol-3]='0';tmp[ncol-2]='0';tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                case 2:tmp[ncol-3]='0';tmp[ncol-2]=mas[i][x-2];tmp[ncol-1]=mas[i][x-1];tmp[ncol]=mas[i][x];break;
                }
                num++;break;
            default:++n;break;
            }   
        }
        if(!(num==4)) return i+1;//проверяем строку на 4-е знака препинания
        cout<<'\n'<<tmp;
    }
    return 0;
 }
 
void dmakemas()
{
}
void dwrite()
{
}
но вот проблема появилась с выполнением если между знаками . и /,поставить по одному елементу ,то выбьет ошибку стринг вышел из диапазона,да и проблема с строками - с 2-й строки после знака / присваивается и первой(((( нужно компилировать,иначе не поймёте
 
Текущее время: 22:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru