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

Считывание из файла - ifstream - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод целого числа в двоичную систему счисления http://www.cyberforum.ru/cpp-beginners/thread388955.html
Вводится целое число n. Вывести это число в двоичной системе счисления!!...((( как?......
C++ Вделить из строки подстроки с цифрами, буквами и прочими символами Собственно, возникает проблема Подскажите пожалуйста, в чем неправ: #include <iostream.h> #include <stdio.h> #include <string.h> #include <conio.h> int main() { char str; char x,y,z; http://www.cyberforum.ru/cpp-beginners/thread388954.html
C++ Открыть письмо из почты
Напишите пожалуйста программу. Единственное что нужно это чтоб текст открывшейся почты то есть открывшегося письма сразу открывался в каком нибудь текстовом редакторе. И после этого сразу нажималась нажималась клавиша F8
WinApi часть языка C/C++ C++
Просто стало интересно WinApi это часть языка C/C++ или WinApi с С/С++ не связан ваше?
C++ Указатели http://www.cyberforum.ru/cpp-beginners/thread388937.html
Начал читать тему по указателям возникло пару вопросов ответи если не сложно,(если можно превидите пример) 1)На что устанавляеться указатель? 2) Их использования пример привести
C++ Чтение из файла Добрый вечер! Помогите пожалуйста с одной проблемкой! Я Создала структуру node Вот он: struct node { char sym; float pro; int arr; int top; подробнее

Показать сообщение отдельно
lp_4eva
Учусь...
 Аватар для lp_4eva
59 / 2 / 1
Регистрация: 20.03.2010
Сообщений: 167
22.11.2011, 00:36     Считывание из файла - ifstream
Пожалуйста помогите!
Сама пробовала!
Без результатно!!!
Пожалуйста помогите сделать так чтобы текст он считывал с тхт файла. А не так чтобы мы сами ввели!
Вот первичный код:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include< stdio.h>
#include< conio.h>
#include< string.h>
#include <iostream>
#include <fstream>
#include <cmath>
 
struct node
{
 char sym[10];
 float pro;
 int arr[20];
 int top;
}s[20];
 
typedef struct node node;
 
void prints(int l,int h,node s[])
{
 int i;
 for(i=l;i<= h;i++)
 {
 printf("\n%s\t%f",s[i].sym,s[i].pro);
 }
}
 
void shannon(int l,int h,node s[])
{
 float pack1=0,pack2=0,diff1=0,diff2=0;
 int i,d,k,j;
 if((l+1)==h || l==h || l>h)
 {
 if(l==h || l>h)
 return;
 s[h].arr[++(s[h].top)]=0;
 s[l].arr[++(s[l].top)]=1;
 return;
 }
 else
 {
 for(i=l;i<=h-1;i++)
 pack1=pack1+s[i].pro;
 pack2=pack2+s[h].pro;
 diff1=pack1-pack2;
 if(diff1< 0)
 diff1=diff1*-1;
 j=2;
 while(j!=h-l+1)
 {
 k=h-j;
 pack1=pack2=0;
 for(i=l;i<=k;i++)
 pack1=pack1+s[i].pro;
 for(i=h;i>k;i--)
 pack2=pack2+s[i].pro;
 diff2=pack1-pack2;
 if(diff2< 0)
 diff2=diff2*-1;
 if(diff2>=diff1)
 break;
 diff1=diff2;
 j++;
 }
 k++;
 for(i=l;i<=k;i++)
 s[i].arr[++(s[i].top)]=1;
 for(i=k+1;i<=h;i++)
 s[i].arr[++(s[i].top)]=0;
 shannon(l,k,s);
 shannon(k+1,h,s);
 }
}
 
void main()
{
 int n,i,j;
 float x,total=0;
 char ch[10];
 node temp;
 
 printf("Enter How Many Symbols Do You Want To Enter\t: ");
 scanf("%d",&n);
 for(i=0;i< n;i++)
 {
 printf("Enter symbol %d ---> ",i+1);
 scanf("%s",ch);
 strcpy(s[i].sym,ch);
 }
 for(i=0;i< n;i++)
 {
 printf("\n\tEnter probability for %s ---> ",s[i].sym);
 scanf("%f",&x);
 s[i].pro=x; 
 total=total+s[i].pro;
 if(total>1)
 {
 printf("\t\tThis probability is not possible.Enter new probability");
 total=total-s[i].pro;
 i--;
 }
 }
 s[i].pro=1-total;
 for(j=1;j<=n-1;j++)
 {
 for(i=0;i<n-1;i++)
 {
 if((s[i].pro)>(s[i+1].pro))
 {
 temp.pro=s[i].pro;
 strcpy(temp.sym,s[i].sym);
 s[i].pro=s[i+1].pro;
 strcpy(s[i].sym,s[i+1].sym);
 s[i+1].pro=temp.pro;
 strcpy(s[i+1].sym,temp.sym);
 }
 }
 }
 for(i=0;i< n;i++)
 s[i].top=-1;
 
 shannon(0,n-1,s);
printf("---------------------------------------------------------------");
 printf("\n\n\n\tSymbol\tProbability\tCode");
 for(i=n-1;i>=0;i--)
 {
 printf("\n\t%s\t%f\t",s[i].sym,s[i].pro);
 for(j=0;j<=s[i].top;j++)
 printf("%d",s[i].arr[j]);
 }
printf("\n---------------------------------------------------------------");
 getch();
}
Вот я пробовала сделать:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include< stdio.h>
#include< conio.h>
#include< string.h>
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
struct node
{
 char sym[10];
 float pro;
 int arr[20];
 int top;
}s[20];
 
typedef struct node node;
 
void prints(int l,int h,node s[])
{
 int i;
 for(i=l;i<= h;i++)
 {
 printf("\n%s\t%f",s[i].sym,s[i].pro);
 }
}
 
void shannon(int l,int h,node s[])
{
 float pack1=0,pack2=0,diff1=0,diff2=0;
 int i,k,j;
 if((l+1)==h || l==h || l>h)
 {
 if(l==h || l>h)
 return;
 s[h].arr[++(s[h].top)]=0;
 s[l].arr[++(s[l].top)]=1;
 return;
 }
 else
 {
 for(i=l;i<=h-1;i++)
 pack1=pack1+s[i].pro;
 pack2=pack2+s[h].pro;
 diff1=pack1-pack2;
 if(diff1< 0)
 diff1=diff1*-1;
 j=2;
 while(j!=h-l+1)
 {
 k=h-j;
 pack1=pack2=0;
 for(i=l;i<=k;i++)
 pack1=pack1+s[i].pro;
 for(i=h;i>k;i--)
 pack2=pack2+s[i].pro;
 diff2=pack1-pack2;
 if(diff2< 0)
 diff2=diff2*-1;
 if(diff2>=diff1)
 break;
 diff1=diff2;
 j++;
 }
 k++;
 for(i=l;i<=k;i++)
 s[i].arr[++(s[i].top)]=1;
 for(i=k+1;i<=h;i++)
 s[i].arr[++(s[i].top)]=0;
 shannon(l,k,s);
 shannon(k+1,h,s);
 }
}
void main()
{
 
 int i,j;
 int n = 0;
 float x,total=0;
 char ch[10];
 node temp;
 ifstream in;
ofstream out;
  in.open("1.txt");
 
 int str[1000];
 
  if(!in)cout<<"\n File not found ";
 
int k = 0;
while(!in.eof()){
     in>>s[k].sym>>s[k].pro>>s[k].top;
         k++;
}
cout<<"\n Symbol vstre4aetsya:   ";
for(int i=0;i<256;i++){
     total++;
if(ch[i]){
           cout<<"\n    "<<char(i)<<"           "<<ch[i]<<" raz \n ";
           cout<<"\n Veroyatnost'=>    "<<"           "<<ch[i]/total<<" ";
          
 strcpy(s[i].sym,ch);
}
 s[i].pro=1-total;
 for(j=1;j<=n-1;j++)
 {
 for(i=0;i<n-1;i++)
 {
 if((s[i].pro)>(s[i+1].pro))
 {
 temp.pro=s[i].pro;
 strcpy(temp.sym,s[i].sym);
 s[i].pro=s[i+1].pro;
 strcpy(s[i].sym,s[i+1].sym);
 s[i+1].pro=temp.pro;
 strcpy(s[i+1].sym,temp.sym);
 }
 }
 }
 for(i=0;i< n;i++)
 s[i].top=-1;
 
 shannon(0,n-1,s);
printf("---------------------------------------------------------------");
 printf("\n\n\n\tSymbol\tProbability\tCode");
 for(i=n-1;i>=0;i--)
 {
 printf("\n\t%s\t%f\t",s[i].sym,s[i].pro);
 for(j=0;j<=s[i].top;j++)
 printf("%d",s[i].arr[j]);
 }
printf("\n---------------------------------------------------------------");
 getch();
}
}
Но ехе закрывается говорит ошибка. Но когда компилируешь ошибок нету!
Я знаю что написала что-то не то с структурой и ifstream
Помогите связать их!

P.S:Завтра уже сдавать! Плиз! Помогите!Я правда пыталась=)

Добавлено через 20 минут
Никто не сможет мне помочь???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru