09. april 2007 - 02:04Der er
20 kommentarer og 1 løsning
I/O med C++.Net
Heysa,
Jeg har skiftet fra en ussel og elendig compiler (som skulle være C++ men kun understøttede C... (?!)) og nu bruger jeg Visual Studio 2005, og dermed .NET.
Jeg har nogle problemer med at finde ud af hvordan man åbner filer og læser/skriver fra/til dem. Jeg har rodet med den go'e gamle måde med of- og ifstream, men det virker ikke. Er der nogen der ved hvor meget den har ændret sig? Jeg har kigget på MSDN, men den har ikke meget at byde på her, desværre.
Hvis der eventuelt kunne gives et eksempel ville jeg være glad.. kunne de ikke bare lade være med at ændre på alt muligt når de endelig smed det med i .NET? :(
Hvis jeg forsøger at compile dette får jeg intet mindre end 13 fejl:
Error 1 error C2065: 'ifstream' : undeclared identifier Error 2 error C2146: syntax error : missing ';' before identifier 'f1' Error 3 error C3861: 'f1': identifier not found Error 4 error C2065: 'ofstream' : undeclared identifier Error 5 error C2146: syntax error : missing ';' before identifier 'f2' Error 6 error C3861: 'f2': identifier not found Error 7 error C2065: 'string' : undeclared identifier Error 8 error C2146: syntax error : missing ';' before identifier 'line' Error 9 error C2065: 'line' : undeclared identifier Error 10 error C3861: 'getline': identifier not found Error 11 error C2065: 'endl' : undeclared identifier Error 12 error C2228: left of '.close' must have class/struct/union Error 13 error C2228: left of '.close' must have class/struct/union
Jeg kan heller ikke rigtig finde stedet hvor man compiler med cl /EHsc osv. Troede det var: Project -> <projekt> Properties -> C/C++ -> Command Line -> Additional Options. Det var det ikke :) Ihvertfald virker det ikke, da jeg forsøgte fik jeg iflg. fejl:
Error 1 fatal error C1083: Cannot open source file: 'cl': No such file or directory
Et eller andet er ihvertfald gået helt galt under installationen af Visual Studio 2005 for mig, cl.exe mangler "mspdb80.dll" og kan derfor ikke starte. Det kører bare :)
Hvis du kan finde ud af hvor man i IDE'et sætter den parameter, ville det da være dejligt.
Ah.. jeg har fikset det manglende .dll problem. Der skulles tilføjes en sti til PATH miljøvariablen til C:\Program Files\Microsoft Visual Studio 8\Common7\IDE. Nu kan cl.exe køres.
Nu lader det endelig til at virke. Jeg skal dog bruge "" omkring mine includes (#include "fil.h"). Jeg kan ikke bruge #include <fil>. Det er vel overkommeligt.
Jeg synes det er sjovt - hvis jeg undlader "stdafx.h" vil ALT gå amok og generere fejl ad libitum. Den går også amok hvis den ikke er den FØRSTE include. Hvorfor autogenereres denne? Bør jeg tilføje mine includes i den, eller hvad er meningen?
Smid i øvrigt et svar, du har været til stor hjælp :)
// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently //
#pragma once
#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. #define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. #endif
Det nærmeste jeg kommer på "not use precompiled header files" er et afkrydsningsfelt under oprettelse af projektet, "Precompiled header". Det lader ikke til at gøre nogen forskel om der er flueben i dette eller ej. Det kan godt være jeg kigger det helt forkerte sted ;)
Hvis jeg browser MSDN finder jeg kun denne, som jeg intet forstår af - udover at det med garanti er det stik modsatte af hvad jeg skal finde:
property pchOption UsePrecompiledHeader { pchOption get (); void set ([InAttribute] pchOption optSetting); }
Jeps, nu brokker den sig ikke længere hvis man fjerner referencen til stdafx.h. Dejligt :) Så kan man passende til mine småprojekter holde det meste i én central header fil.
Jeg takker mange gange for hjælpen og tålmodigheden!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.