Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Almaz_KG
6 / 6 / 1
Регистрация: 15.05.2012
Сообщений: 105
#1

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

17.05.2012, 02:04. Просмотров 282. Ответов 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++):

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк
Есть динамический массив строк. Заполняется, т.е. размер его уже известен...

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

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

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

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

3
Andrey.K
344 / 265 / 128
Регистрация: 14.11.2010
Сообщений: 482
17.05.2012, 02:08 #2
Походу ты записываешь в бинарном виде.
1
Almaz_KG
6 / 6 / 1
Регистрация: 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
344 / 265 / 128
Регистрация: 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
Привет! Вот еще темы с решениями:

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

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках.
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие...

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки.
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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