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

Дан текстовый файл, состоящий из нескольких строк. Поменять в нем местами первую и последнюю строку. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ неправильно сортирует массив по возрастанию и ненаходит минемальный элемент http://www.cyberforum.ru/cpp-beginners/thread328575.html
#include <windows.h> #include <iostream.h> #include <math.h> #include <time.h> template <class Type> void vvod(Type *a,int n); template <class Type> void vivod(Type *a,int n); template<class T> int kolich(T*a,int n); template <class T> void preobr (T*a,int n); template <class T> int min1(T*a,int n); main(){
C++ Найти максимальный элемент среди отрицательных чисел 1. Не заводить массив.Вводиться последовательность чисел,оканчивающийся на ноль.Найти максимальный элемент среди отрицательных чисел. 2. Дано n и x,вычислить x^n. 3. Вычислить среднее арифметическое элементов одномерного массива без учета минимального и максимального элементов массива. 4. Является ли одномерный массив возрастающей последовательностью? http://www.cyberforum.ru/cpp-beginners/thread328568.html
Даны действительные числа x, y. Ошибка C++
Помогите пожалуйста найти ошибки, она что то вообще не реботает Даны действительные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #include <iostream> int main ( ) { float X, Y; bool result = false; setlocale( LC_ALL,"Russian"); std::cout << "Введите координаты X и Y: " << std::endl; std::cin >> X >> Y;
C++ свитч
чего-то не идет.. #include<iostream> #include<conio.h> using namespace std; int main() { //const int SIZE = 3; //Setting the array size //char abb; char variants;
C++ Получить указатель на массив указателей http://www.cyberforum.ru/cpp-beginners/thread328554.html
Есть массив инициализированных указателей: Result* res; for (int i=0;i<100; i++) { res=new Result(); } Подскажите пожалуйста, как сделать так чтобы другой указатель также указывал на данный массив. Просто, например:
C++ Многомерная интерполяция Доброго времени суток. У меня такая задача, у меня есть пятимерное пространство точек, по сути сетка. Задача сводится к интерполяции 5 мерного пространства состоящего из точек сетки, в каждой из которых свои свойства. Точка расположена между узлами сетки. Может есть библиотека какаянить для таких вычислений? Пишу на GCC. подробнее

Показать сообщение отдельно
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
02.07.2011, 01:14     Дан текстовый файл, состоящий из нескольких строк. Поменять в нем местами первую и последнюю строку.
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
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define FILENAME "file.txt"
 
int main()
{
        FILE *file;
        char buf[BUFSIZ];
        char *last, *tmp, *nl;
        char **lines = NULL;
        size_t cnt = 0;
 
        file = fopen(FILENAME, "r+");
        if (! file) {
                fprintf(stderr, "Can't open the file \"%s\"\n", FILENAME);
                exit(1);
        }
 
        while (! feof(file)) {
                fgets(buf, BUFSIZ - 1, file);
 
                if ((lines = (char**)realloc(lines, ++cnt * sizeof(char*))) == NULL) {
                        fputs("Can't allocate memory\n", stderr);
                        exit(2);
                }
                if ((lines[cnt - 1] = strdup(buf)) == NULL) {
                        fputs("Can't duplicate string\n", stderr);
                        exit(3);
                }
                memset(buf, 0, BUFSIZ);
        }
 
        if ((nl = strrchr(*lines, '\n')) != NULL)
            *nl = '\0';
        last = lines[cnt - 1];
        if (strrchr(last, '\n') == NULL) {
            strcpy(buf, last);
            strcat(buf, "\n");
            free(last);
            if ((last = strdup(buf)) == NULL) {
                fputs("Can't duplicate string\n", stderr);
                exit(3);
            }
        }
        tmp = *lines;
        *lines = last;
        lines[cnt - 1] = tmp;
 
        fseek(file, 0, SEEK_SET);
        for (size_t i = 0; i < cnt; ++i) {
                fprintf(file, "%s", lines[i]);
                free(lines[i]);
        }
        free(lines);
        fclose(file);
        exit(0);
}
Добавлено через 49 минут
Maxwe11, если программа должна просто менять местами строки, то не сложно догадаться что
если ее выполнить напрмер 4 раза на одном файле, то его содержимое не должно измениться, попробуйте и посмотрите что будет.
P.S Cам не могу, потому что пока нет компилятора с поддержкой C++0x.
 
Текущее время: 23:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru