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

БредоTCHAR C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамические структуры данных http://www.cyberforum.ru/cpp-beginners/thread134866.html
Необходимо составить программу, которая содержит информацию о автобусах в автобусном парке. Сведения о каждом автобусе содержат: - номер автобуса; - фамилию и инициалы водителя; - номер маршрута;
C++ BORLAND3.1 как в борланде 3.1 сделать ехе файл? http://www.cyberforum.ru/cpp-beginners/thread134862.html
Вывести средний бал всех студентов C++
Помогите пожалуйста с задачей. Создать массив структур, содержащий информацию о студентах: ФИО, номер группы, оценки за последнюю сессию. Вывести информацию о среднем бале всех студентов. {желательно под C++ builder или dev C++} Заранее спасибо...
сортировка массива строк в файле. чтение массива из файла. C++
Добрый день форумчане очень нужна ваша помощь. Собственно надо отсортировать массив из строк по длине первого слова в строке в файле. Записать в файл у меня получилось а считать и отстортировать в файле никак не получается. Собственно это 4 и 5 пункты меню.Если делать без файлов то всё работает. Пожалуйста помогите. Заранее спасибо. // Dynamic_string.cpp : Defines the entry point for the...
C++ Не копирует файл, почему? http://www.cyberforum.ru/cpp-beginners/thread134836.html
по нажатии на кнопку должно копировать указаный файл в папку с программой в папку 1, но ничего не копирует:( void __fastcall TForm1::Button3Click(TObject *Sender) { if (!OpenDialog1->Execute()) return; AnsiString s = OpenDialog1->FileName, s1 = "1/" + ExtractFileName(OpenDialog1->FileName); CopyFile( s.c_str() , s1.c_str() , 0); }
C++ Русский ввод Как сделать на с++, чтоб при вводе русского текста, срабатывал иф ,выводя каут? Пробую так, не выходит. #include <iostream> #include <string> #include <clocale> #include <conio.h> using namespace std; int main() { подробнее

Показать сообщение отдельно
Александр Елис
3 / 3 / 1
Регистрация: 20.05.2010
Сообщений: 50
25.05.2010, 20:19  [ТС]     БредоTCHAR C++
Срасибо, что показали работу дотоле незнакомых функций(fseek и т.д.), но каретка у меня на начале файла итак, т.к. я закрываю и вновь открываю файл.
Кроме того, я переделал свою функцию так:
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
#ifndef _MYTXTFILECOPY_H_
#define _MYTXTFILECOPY_H_
 
 
#include "stdio.h"
#include "tchar.h"
#include <iostream>
using namespace std;
//=============================================================||
#define MAX_BUFFER_LENGHT 1000
#define fcopy MyTXTFileCopy 
 
bool MyTXTFileCopy(char* F_I, char *F_O)
{
    FILE *f_i;
    FILE *f_o;
    TCHAR *buf;
    //TCHAR buffer[MAX_BUFFER_LENGHT] = _TEXT("1\0");
    char c = ' ';
    int tmp = 0;
    //int count = 10000;
    //=====================||
    cout << F_I << "\n" << F_O; 
    f_i=fopen(F_I,"r");
    if(f_i==NULL)
    {
        cout << "\nFunction \"MyTXTFileCopy\" return false(cannot open the file?). " << "Name of file: " << F_I << "\n"; 
        return false;
    }
    fseek(f_i,0,SEEK_END);
    tmp=ftell(f_i);
    if(tmp==0)
    {
        cout << "\nFunction \"MyTXTFileCopy\" return false(File is clear?). " << "Name of file: " << F_I << "\n"; 
        return false;
    }
    fseek(f_i,0,SEEK_SET);
    buf=new TCHAR[tmp+1];
    //cout << buf;
    fread(buf,sizeof(TCHAR),tmp,f_i);
    for(int i=0;i<tmp+1;i++)
    {
        cout << buf[i];
    }
    f_o=fopen(F_O,"w");
    fwrite(buf,tmp-1,sizeof(TCHAR),f_o);
    fclose(f_i);
    fclose(f_o);
    return true;
}
#endif
, но проблема не исчезла. По-прежнему в новый файл копируется содержание старого + "НННННННННННННННННННННННННННННННННННН". C чем это связано? Может, дело в TCHAR, или я чего-то не понимаю? Пожалуйста, разъясните!
P.S. После fread в buf, если сделать cout << buf выдает страхобред(чиселки какие-то)

Добавлено через 54 минуты
О_о вот еще новость:
если меняю в функциях fread и fwrite TCHAR на char, все ок. Как так получается?
Код
fread(buf,sizeof(char),tmp+1,f_i);
fwrite(buf,tmp-1,sizeof(char),f_o);
 
Текущее время: 01:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru