|
| indlæsning af data fra fil. Fra : Heureka |
Dato : 09-01-05 19:39 |
|
Hejsa,
Jeg har endnu et spørgsmål. Jeg prøver at indlæse data fra en fil på
følgende vis:
#include "stdafx.h"
#include "fstream.h"
#include "iostream.h"
const NUM_SAMPLES = 128;
int _tmain(int argc, _TCHAR* argv[])
{
char str[NUM_SAMPLES];
fstream file_op("input.txt",ios::in);
while(file_op >> str)
cout << str ;
file_op.close();
cout << " ----- Testing ------" << endl;
cout << "size of buffer : " << sizeof(str) << endl;
for(int indx=0;indx<NUM_SAMPLES;indx++)
printf(" sample no. : %i = %d \n",indx,str[indx]);
getchar();
return 0;
}
Problemet her er at jeg ikke kan læse fra arrayet "str". Jeg kan se i
konsolvinduet at mine data bliver læst rigtigt ind ved prompten, men jeg kan
ikke få dem skrevet ud i FOR-løkken.
| |
Heureka (09-01-2005)
| Kommentar Fra : Heureka |
Dato : 09-01-05 19:45 |
|
forøvrigt ligger mine data gemt således i input.txt filen:
9.5012929e-001
2.3113851e-001
6.0684258e-001
4.8598247e-001
8.9129897e-001
7.6209683e-001
4.5646767e-001
1.8503643e-002
8.2140716e-001
4.4470336e-001
6.1543235e-001
7.9193704e-001
9.2181297e-001
7.3820725e-001
1.7626614e-001
......
"Heureka" <stoltzo@hotmail.com> wrote in message
news:41e17a46@news.wineasy.se...
> Hejsa,
>
> Jeg har endnu et spørgsmål. Jeg prøver at indlæse data fra en fil på
> følgende vis:
>
> #include "stdafx.h"
>
> #include "fstream.h"
>
> #include "iostream.h"
>
> const NUM_SAMPLES = 128;
>
> int _tmain(int argc, _TCHAR* argv[])
>
> {
>
> char str[NUM_SAMPLES];
>
>
> fstream file_op("input.txt",ios::in);
>
> while(file_op >> str)
>
> cout << str ;
>
> file_op.close();
>
> cout << " ----- Testing ------" << endl;
>
> cout << "size of buffer : " << sizeof(str) << endl;
>
> for(int indx=0;indx<NUM_SAMPLES;indx++)
>
> printf(" sample no. : %i = %d \n",indx,str[indx]);
>
> getchar();
>
> return 0;
>
> }
>
>
>
> Problemet her er at jeg ikke kan læse fra arrayet "str". Jeg kan se i
> konsolvinduet at mine data bliver læst rigtigt ind ved prompten, men jeg
> kan ikke få dem skrevet ud i FOR-løkken.
>
>
>
>
| |
Bertel Brander (09-01-2005)
| Kommentar Fra : Bertel Brander |
Dato : 09-01-05 20:35 |
|
Heureka wrote:
> Problemet her er at jeg ikke kan læse fra arrayet "str". Jeg kan se i
> konsolvinduet at mine data bliver læst rigtigt ind ved prompten, men jeg kan
> ikke få dem skrevet ud i FOR-løkken.
Det er ikke helt klart for mig hvad hensignten er.
Jeg har forsøgt at lave en version der virker.
#include <fstream>
#include <iostream>
#include <stdio.h>
const int NUM_SAMPLES = 128;
int main()
{
double str[NUM_SAMPLES];
std::fstream file_op("input.txt", std::ios::in);
int NumSamples;
for(NumSamples = 0; file_op >> str[NumSamples] && NumSamples <
NUM_SAMPLES; NumSamples++)
std::cout << str[NumSamples] << std::endl;
file_op.close();
std::cout << " ----- Testing ------" << std::endl;
std::cout << "size of buffer : " << sizeof(str) << std::endl; // ??
for(int indx=0; indx < NumSamples; indx++)
std::cout << "sample no. : " << indx << " = " << str[indx] <<
std::endl;
std::cout << "Hit enter to exit" << std::endl;
getchar();
return 0;
}
--
"We learned more from a three minute record, baby
than we ever learned in school"
- Bruce Springsteen
| |
Heureka (09-01-2005)
| Kommentar Fra : Heureka |
Dato : 09-01-05 20:53 |
|
Hej Bertel,
Meget fornemt. Nu kan jeg endelig kommer videre :)
Tak for den store hjælp!
Thomas
"Bertel Brander" <bertel@post4.tele.dk> wrote in message
news:41e18776$0$230$edfadb0f@dread12.news.tele.dk...
> Heureka wrote:
>> Problemet her er at jeg ikke kan læse fra arrayet "str". Jeg kan se i
>> konsolvinduet at mine data bliver læst rigtigt ind ved prompten, men jeg
>> kan ikke få dem skrevet ud i FOR-løkken.
>
> Det er ikke helt klart for mig hvad hensignten er.
> Jeg har forsøgt at lave en version der virker.
>
> #include <fstream>
> #include <iostream>
> #include <stdio.h>
>
> const int NUM_SAMPLES = 128;
>
> int main()
> {
> double str[NUM_SAMPLES];
>
> std::fstream file_op("input.txt", std::ios::in);
>
> int NumSamples;
> for(NumSamples = 0; file_op >> str[NumSamples] && NumSamples <
> NUM_SAMPLES; NumSamples++)
> std::cout << str[NumSamples] << std::endl;
>
> file_op.close();
>
> std::cout << " ----- Testing ------" << std::endl;
>
> std::cout << "size of buffer : " << sizeof(str) << std::endl; // ??
>
> for(int indx=0; indx < NumSamples; indx++)
> std::cout << "sample no. : " << indx << " = " << str[indx] <<
> std::endl;
>
> std::cout << "Hit enter to exit" << std::endl;
> getchar();
>
> return 0;
> }
>
> --
> "We learned more from a three minute record, baby
> than we ever learned in school"
> - Bruce Springsteen
| |
Ivan Johansen (10-01-2005)
| Kommentar Fra : Ivan Johansen |
Dato : 10-01-05 08:49 |
|
Bertel Brander wrote:
> for(NumSamples = 0; file_op >> str[NumSamples] && NumSamples <
> NUM_SAMPLES; NumSamples++)
Jeg synes at det her ser lidt mistænkeligt ud. Hvad sker der når
NumSamples = NUM_SAMPLES? Først skriver du i str[NumSamples] hvorefter
du finder ud af at indekset ikke er gyldigt. Jeg tror det er bedre at
skrive:
for(NumSamples = 0; NumSamples < NUM_SAMPLES &&
file_op >> str[NumSamples]; NumSamples++)
Ivan Johansen
| |
Bertel Brander (10-01-2005)
| Kommentar Fra : Bertel Brander |
Dato : 10-01-05 20:06 |
|
Ivan Johansen wrote:
> Bertel Brander wrote:
>
>> for(NumSamples = 0; file_op >> str[NumSamples] && NumSamples <
>> NUM_SAMPLES; NumSamples++)
>
>
> Jeg synes at det her ser lidt mistænkeligt ud. Hvad sker der når
> NumSamples = NUM_SAMPLES? Først skriver du i str[NumSamples] hvorefter
> du finder ud af at indekset ikke er gyldigt. Jeg tror det er bedre at
> skrive:
>
> for(NumSamples = 0; NumSamples < NUM_SAMPLES &&
> file_op >> str[NumSamples]; NumSamples++)
Du har naturligvis ret.
--
"We learned more from a three minute record, baby
than we ever learned in school"
- Bruce Springsteen
| |
|
|