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

Строки на С++ - C++

Восстановить пароль Регистрация
 
Almaz_KG
6 / 6 / 0
Регистрация: 15.05.2012
Сообщений: 105
17.05.2012, 02:04     Строки на С++ #1
Мне надо перекопировать все символы с одного текстового файла в другой
В общем проблема такая:
в результирующем тексте(result.txt) вместо латиницы выводится абракадабра. В чем ошибка??
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
 
void main ()
{
    setlocale(LC_ALL, "rus");
 
    char locale[255];
    printf("Введите имя файла: ");
    gets(locale);
 
    FILE *text=fopen(locale,"r"); 
    if (text!=NULL) 
    {       
        FILE * result=fopen("result.txt","w");
        if(result != NULL)
        {
            int ch;
            while (!feof(text))
            {
                ch = getc(text);                      
                
                putc(ch,result);     
 
                fprintf(result,"%s",text);
            }
            fclose(text);
            fclose (result);
            printf("Файл записан");
            
        }
        else
            printf("Не удалось записать файл");
    }
    else printf("Файл с таким именем не найден!");
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 02:04     Строки на С++
Посмотрите здесь:

Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. C++
C++ Вывести на экран все строки данного массива одну за другой в виде целой строки
C++ .Упорядочить строки матрицы по убыванию значений произведений наименьшего и наибольшего элементов каждой строки
C++ Если строки одинаковы, объединить две строки, исключив из второй первые десять символов
Как сделать так, что бы длинна строки сама менялась при вводе строки? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
17.05.2012, 02:08     Строки на С++ #2
Походу ты записываешь в бинарном виде.
Almaz_KG
6 / 6 / 0
Регистрация: 15.05.2012
Сообщений: 105
17.05.2012, 02:14  [ТС]     Строки на С++ #3
Все решил - тупанул)))

Добавлено через 4 минуты
Andrey.K, все теперь правильно,но в конце появляется лишняя буква
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
#include <iostream>
 
void main ()
{
    setlocale(LC_ALL, "rus");
 
    char locale[255];
    printf("Введите имя файла: ");
    gets(locale);
 
    FILE *text=fopen(locale,"r"); 
    if (text!=NULL) 
    {       
        FILE * result=fopen("result.txt","w");
        if(result != NULL)
        {
            int ch;
            while (!feof(text))
            {
                ch = getc(text);                      
                putc(ch,result);     
            }
            printf("Файл записан.");
            
        }
        else
            printf("Не удалось записать файл");
    }
    else printf("Файл с таким именем не найден!");
    getch();
}
В чем проблема не знаешь??
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
17.05.2012, 02:46     Строки на С++ #4
Вот почитай http://cpp.com.ru/shildt_spr_po_c/13/putc.html
Попробуй просто обрезать последний символ.

Добавлено через 22 минуты
Я новый код написал, держи , если надо
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
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    string FileName,line="",ch;
    cout<<"Введите имя файла: ";cin>>FileName;
    ifstream F(FileName);
    while (! F.eof())
    {
        F>>ch;
        line+=ch;
    }
    F.close();
    ofstream P("result.txt");
    for(int i=0;i<line.length();i++)
    {
        P<<line[i];
    }
    P.close();
    cout<<"Готово.";
    getch();
    return 0;
}
Yandex
Объявления
17.05.2012, 02:46     Строки на С++
Ответ Создать тему
Опции темы

Текущее время: 22:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru