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

Пока не конец файла, считывает 2 раза - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа с массивом, с заменой эелементов http://www.cyberforum.ru/cpp-beginners/thread713508.html
Здравствуйте, мне была задана программа, с таким заданием: "В массив целых чисел все нулевые элементы заменить на средние арифмитические всех элементов массивов." Помогите пожалуйста её дописать, исправить и довести до рабочего состояния, вот сама программа: #include <iostream> using namespace std; void main(void) { for a = {3, 50, 0, 49, 30}; int v, vr, i;
C++ Блок-схемы не могу сделать Помогите пожалуйста к программам на С++ сделать блок-схемы! Сам пробовал но у меня они не получились, помогите пожалуйста, буду очень благодарен! Вот и программы: 1) #include<iostream.h> #include<conio.h> #include<string.h> void main () { clrscr(); char name; http://www.cyberforum.ru/cpp-beginners/thread713500.html
Шаблонная функция C++
Дорогие форумчане, нуждаюсь в вашей помощи: имеется несколько функций, с большим объемом кода. Чтоб не повторять код для функций с другим типом принимаемых параметров необходимо переделать эти ф-ции на шаблонные. Но у меня не выходит( Так работает: void Gauss(float A,float B)// cама функция { //... } float A; float B;
ребят!)бинарное дерево C++
может кто знает как в С++ в программу впихнуть переводчик...??с русского на английский??может кто делал уже помогите..приведите пример хотя бы на одном слове..вводишь русское-выдёт англ..вот сам текст программы..#include <iostream> using namespace std; struct node { int Key; int Count; node *Left; node *Right; };
C++ Значение функции http://www.cyberforum.ru/cpp-beginners/thread713482.html
Нужно вычислить и вывести на экран значение функции z= 5*x+y, если x>y z= cos(x), если x=y z= -2sin(y), если y-10<x<y z= 0, если x<=y-10 Значения x и y вводить с клавиатуры. С него тут начать вообще? Даже идей никаких нет. Помогите.
C++ "Двойной" доступ к переменным класса Господа, прошу совета в изложенной ниже ситуации. Часто мне встречается в различных вариациях, поэтому есть потребность в изящном решении. Итак, есть, допустим, такой класс: class EnumerousVariables { public: EnumerousVariables(); ~EnumerousVariables(); TypeA& getA() const; TypeB& getB() const; подробнее

Показать сообщение отдельно
maSt
 Аватар для maSt
5 / 5 / 1
Регистрация: 28.02.2010
Сообщений: 166

Пока не конец файла, считывает 2 раза - C++

29.11.2012, 19:57. Просмотров 897. Ответов 0
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void delet1()
{
    char namefile1[100],s[256];
    int zktorego=0,ile = 0;
    scanf("%s",namefile1);
    strcat(namefile1, ".txt");
    FILE * fo;
    fo = fopen(namefile1,"r"); 
    FILE * f1;
    f1 = fopen("tmp.txt","wt"); 
    scanf("%i",&zktorego);
    for(int i=0;i<zktorego;i++) {fgets(s,256,fo);fprintf(f1,"%s\r\n", s);}
    scanf("%i",&ile);
    for(int i=0;i<ile;i++) {fgets(s,256,fo);}
    do{fgets(s,256,fo);fprintf(f1,"%s\r\n", s);}while (!feof(fo));
    fclose(fo);
    fclose(f1);
}
Написал функцию которая должна удалять из файла несколько строк.
То есть, открываю 1 файл для чтения , 2-ой для записи.

Считываю из которой строки начинать удалять. И прохожу все строки , до нужной мне.

Считываю сколько строк удалять, и прохожу их.

И пытаюсь считать все оставшиеся строки.
Но вот тут и закопан топор. Почему-то последняя строка считывается 2 раза.
Что с этим не так?

Добавлено через 57 минут
Уже даже через if попробовал, все равно считывает 2 раза. -(

Добавлено через 48 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void delet1(int &iloscrek)
{
    char namefile1[100],s[256];
    int zktorego=0,ile = 0;
    scanf("%s",namefile1);
    strcat(namefile1, ".txt");
    FILE * fo;
    fo = fopen(namefile1,"r+"); 
    FILE * f1;
    f1 = fopen("tmp.txt","w+"); 
    scanf("%i",&zktorego);
    for(int i=0;i<zktorego;i++) {fgets(s,256,fo);fprintf(f1,"%s", s);}
    scanf("%i",&ile);
    for(int i=0;i<ile;i++) {fgets(s,256,fo);}
    for (int i = ile+zktorego;i<iloscrek;i++){fgets(s,256,fo);fprintf(f1,"%s", s);}
    for (int i = 0; i< (iloscrek-ile);i++) {fgets(s,256,f1);fprintf(fo,"%s", s);}
    fclose(fo);
    fclose(f1);
}
Переписал вот так, осталась одна проблема
for (int i = 0; i< (iloscrek-ile);i++) {fgets(s,256,f1);fprintf(fo,"%s", s);} - должно переписывать уже нужную мне последовательность в 1 файл. Но ничего не происходит, Не понимаю почему.

Добавлено через 7 минут
Проблему решил просто закрывая файлы и открывая по новой перед записью.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru