Тема: Російська мова при роботі з файлами
setlocale(LC_ALL, "Russian"); працюю в визула студио 2010 в файл треба писати на російській мові а при виведенні інформаціїї отримую щось таке допоможіть и файл для роботи створюю бінарний
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Російська мова при роботі з файлами
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
setlocale(LC_ALL, "Russian"); працюю в визула студио 2010 в файл треба писати на російській мові а при виведенні інформаціїї отримую щось таке допоможіть и файл для роботи створюю бінарний
Ще б код трохи побачити, бо я зі скріншота не вмію дизасемблювати...
#include "stdafx.h"
#include <locale.h>
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<io.h>
#include<string.h>
#include<CyrIOS.h>
using namespace std;
struct vokzal
{
char fio[25];
char gorod[20];
int kol;
int klas;
int data[3];
float cena;
};
struct zam
{
float A1;
float B2;
float C3;
int A,B,C; //места
};
vokzal bilet;
zam vartist;
void prosm();
void add();
void del();
void edit();
void sort();
void spisok();
void vuvod();
int main(){
setlocale(LC_ALL, "Russian");
int m,n,k;
do
{
printf("\n1.Главное меню");
printf("\n2.Дополнительне меню");
printf("\n3.Выход");
printf("\n Выбирите пункт меню: ");
scanf("%i",&n);
switch(n)
{
case 1:{
do
{
printf("\n1.Просмотр файла данных");
printf("\n2.Добавление записи");
printf("\n3.Удаление файла данных");
printf("\n4.Редактирование файла данных");
printf("\n5.Сортировка");
printf("\n6.Выбор по условию:");
printf("\n7.Выход:");
printf("\n Выбирите пункт меню: ");
scanf("%i",&m);
switch(m)
{
case 1:{ prosm();
break;
}
case 2:{
add();
break;
}
case 3:{
del();//
break;
}
case 4:{
edit();//
break;
}
case 5:{
sort();
break;
}
case 6:{
spisok();
break;
}
}
}
while(m!=7);
break;
}
case 2:{
do
{
printf("\n1.stvorenny fayla dod:");
printf("\n2.Просмотр файла данных:");
printf("\n3.Добавление записи:");
printf("\n4.Удаление файла данных:");
printf("\n5.Выход:");
printf("\n Выбирите пункт меню: ");
scanf("%i",&k);
switch(k)
{
case 1:{ prosm();
break;
}
case 2:{
add();
break;
}
case 3:{
del();//
break;
}
case 4:{
edit();//
break;
}
}
}
while(k!=5);
}
}
}
while(n!=3);
puts("Konec");
getch();
return 0;
}
void vuvod ()
{
puts(bilet.fio);
printf(" %s",bilet.gorod);
printf(" %i",bilet.kol);
printf(" %i",bilet.klas);
printf(" %i.%i.%i ",bilet.data[0],bilet.data[1],bilet.data[2]);
printf("%-6.2f\n",bilet.cena);
}
void vvod()
{
printf("VVod bileta \n");
printf("fio: ");
char ch;
int j=0;
do
{
ch=getche();
bilet.fio[j]=ch;
j++;
} while(ch!=13);
j--;
bilet.fio[j]='\0';
puts(bilet.fio);
puts("gorod: ");
scanf("%s",&bilet.gorod);
puts("kol: ");
scanf("%i",&bilet.kol);
printf("%i",bilet.kol);
printf("klas");
scanf("%i",&bilet.klas);
printf("%i",bilet.klas);
printf("data-deni");
scanf("%i",&bilet.data[0]);
printf("data-mecyac");
scanf("%i",&bilet.data[1]);
printf("data-god");
scanf("%i",&bilet.data[2]);
printf("cena");
scanf("%f",&bilet.cena);
vuvod ();
puts("zapic bileta v pamait");
}
void prosm()
{
printf("Просмотр файла данных \n");
int handle; // дескриптор файла
FILE *fp; // указатель на файл, который будет создан с помощью функции fopen()
int size=sizeof(struct vokzal); //размер одной записи (об одной книге) в байтах
int n,N;
//printf("dlina zapici file - %i\n",size);
if ((fp=fopen ("book.dat","rb"))==NULL)
{fputs("Невозможно открыть файл book.dat\n",stderr);
exit(1); // в данном случае - то же,что и return 1;
}
handle = fileno(fp); // преобразовать открытый файловый поток в дескриптор файла
n=filelength(handle);
printf("n - %i ",n);
N=n/size;
printf("N - %i\n",N);
;
// переход к началу файла
for (int i = 0; i<N; i++)
{
fread(&bilet,size,1,fp);
vuvod();
}
fclose(fp);
}
void add()
{printf("Dobavlenie zapisi k faylu dannih v konec\n");
printf("fio: ");
char ch;
int j=0;
do
{
ch=getche();
bilet.fio[j]=ch;
j++;
} while(ch!=13);
j--;
bilet.fio[j]='\0';
puts(bilet.fio);
puts("gorod: ");
scanf("%s",&bilet.gorod);
puts("kol: ");
scanf("%i",&bilet.kol);
printf("%i",bilet.kol);
printf("klas");
scanf("%i",&bilet.klas);
printf("%i",bilet.klas);
printf("data-deni");
scanf("%i",&bilet.data[0]);
printf("data-mecyac");
scanf("%i",&bilet.data[1]);
printf("data-god");
scanf("%i",&bilet.data[2]);
printf("cena");
scanf("%f",&bilet.cena);
vuvod ();
puts("Запись билета в файл данных");
FILE *fp; // указатель на файл, который будет создан с помощью функции fopen()
int size=sizeof(struct vokzal); //размер одной записи (об одной книге) в байтах
if ((fp=fopen("book.dat","a+b"))==NULL)
{fputs("Невозможно открыть файл book.dat\n",stderr);
exit(1); // в данном случае - то же,что и return 1;
}
fwrite(&bilet,size,1,fp);
fclose(fp);
}
void del()
{puts("Удаление файла данных");
}
void edit()
{
int x;
bool t=false;
puts("Readaktirovenie X-oy zapisi fayla dannih");
FILE *fp; // указатель на файл, который будет создан с помощью функции fopen()
int size=sizeof(struct vokzal); //размер одной записи (об одной книге) в байтах
int n,N;
int handle; // дескриптор файла
if ((fp=fopen("book.dat","r+b"))==NULL)
{fputs("Невозможно открыть файл book.dat\n",stderr);
exit(1); // в данном случае - то же,что и return 1;
}
handle = fileno(fp); // преобразовать открытый файловый поток в дескриптор файла
n=filelength(handle);
printf("n - %i ",n);
N=n/size;
printf("N - %i\n",N);
do
{
if(t) puts("Takoy zapisi net !!! ");
puts("Vvedite Nomer zapisi c 0 - ");
scanf("%i",&x);
if(x>=N) t=true;
}
while (x>=N);
vvod();
fseek(fp, x*size, SEEK_SET);
fwrite(&bilet,size,1,fp);
fseek(fp, 0,SEEK_END);
fclose(fp);
}
void sort()
{puts("Сортировка");
}
void spisok()
{puts("Выбор по условию : 1-пасажиры одного класа 2- пасажыры у которых больше 10 билетов ");
puts("Введите 1 или 2");
int z;
int handle; // дескриптор файла
FILE *fp; // указатель на файл, который будет создан с помощью функции fopen()
int size=sizeof(struct vokzal); //размер одной записи (об одной книге) в байтах
int n,N,x;
bool t=false;
scanf("%i",&z);
if ((fp=fopen ("book.dat","rb"))==NULL)
{fputs("Невозможно открыть файл book.dat\n",stderr);
exit(1); // в данном случае - то же,что и return 1;
}
handle = fileno(fp); // преобразовать открытый файловый поток в дескриптор файла
n=filelength(handle);
N=n/size;
if(z==1)
{
do
{
if(t) puts("Такого класса нет !!! ");
puts("ВВедите номер класа c 1-3: ");
scanf("%i",&x);
if(x>=N) t=true;
}
while ((x>3)||(x<1));
for (int i = 0; i<N; i++)
{
fread(&bilet,size,1,fp);
if(x==bilet.klas) vuvod();
}
}
else
{
for (int i = 0; i<N; i++)
{
fread(&bilet,size,1,fp);
if(bilet.kol>10) vuvod();
}
}
fclose(fp);
}
По суті, Chemist-i вже відповів.
А вам раджу прибрати половину зі своїх заголовків у коді, чий функціонал забезпечується iostream.
І взагалі, нащо вам С++, якщо повсюдно користуєте функції С?
А яке кодування в файлі? Точно таке саме, як в консолі (схоже, що це cp866)?
чесно без поняття яке кодуваня
Тоді яка вам різниця, як воно виводиться на екран?
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися