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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Almaz_KG
6 / 6 / 0
Регистрация: 15.05.2012
Сообщений: 105
#1

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

17.05.2012, 02:04. Просмотров 264. Ответов 3
Метки нет (Все метки)

Мне надо перекопировать все символы с одного текстового файла в другой
В общем проблема такая:
в результирующем тексте(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();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 02:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки на С++ (C++):

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки - C++ Builder
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и надо через (n) символов первой строки...

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки - Java
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки. 2)Дана...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
17.05.2012, 02:08 #2
Походу ты записываешь в бинарном виде.
1
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();
}
В чем проблема не знаешь??
0
Andrey.K
342 / 263 / 15
Регистрация: 14.11.2010
Сообщений: 482
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;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2012, 02:46
Привет! Вот еще темы с ответами:

Слить две строки, вставив символы одной строки между символами другой строки - Pascal
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj &lt; bj, а для всех i &lt; j ai =...

Сравнить строки, первый несовпадающий элемент строки-приемника записать в регистр AL, строки-источника - в DL - Assembler
Помогите написать программу на ассемблерене совсем еще разобрался с этим задание: Ввести с клавиатуры две строки одноразрядных...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках. - Turbo Pascal
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши &quot;Ввод&quot;. Программа должна определить длину введенной...

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй - Turbo Pascal
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа должна определить длину введенной строки...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.05.2012, 02:46
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru