Avatar billede visualdeveloper Nybegynder
29. august 2005 - 17:25 Der er 36 kommentarer og
1 løsning

Simpel fejl i program !

Hej eksperter !

Jeg har lavet dette (midlertidige) program i C# men der kommer en fejl i denne linje: if (valg = 1)

her er hele koden :


using System;
namespace Smart
{
    class SmartClass

{
    static void Main()
    {

        int valg;
        int a, b, c;
        Console.WriteLine();
        Console.WriteLine("1. Areal af firkant");
        Console.WriteLine("2. Areal af cirkel");
        Console.WriteLine("3. Areal af trekant");
        Console.WriteLine("4. Om...");
        Console.WriteLine("5. Luk");
        valg = Convert.ToInt32(Console.ReadLine());
        if (valg = 1)
        {
            Console.WriteLine("Areal af Cirkel");
            Console.WriteLine("Indtast side a:");
            a = Convert.ToInt32(Console.ReadLine());;
            Console.WriteLine("Indtast side b:");
            b = Convert.ToInt32(Console.ReadLine());
           
        }
       
    }
}
}
Avatar billede simonvalter Praktikant
29. august 2005 - 17:29 #1
if (valg = 1) skal være  if (valg == 1)
= er assignment
== er equal to
Avatar billede simonvalter Praktikant
29. august 2005 - 17:31 #2
og et svar
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 17:33 #3
mange tak lige en ting til er jeg virkelig nødt til at skrive alt dette:
int a;
a = Convert.ToInt32(Console.ReadLine());;

jeg får nemlig en fejl når jeg skriver

int a;
a = Console.ReadLine()
Avatar billede simonvalter Praktikant
29. august 2005 - 17:39 #4
Ja det vil jeg mene da du får en string ind fra konsol. Den er du nødt til at lave om til en int for at kunne assigne den til en int. (Men jeg koder ikke rigtigt C#.. jeg sammenligner det bare med Java så jeg kan tage fejl ;)
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 17:45 #5
ok nu ved jeg godt at jeg trækker den en smule men dette er også det sidste:

hvordan clearer man al teksten i et consolevindue ??

ligesom c++ (system("cls");)
Avatar billede simonvalter Praktikant
29. august 2005 - 17:50 #6
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 17:53 #7
det virker sjovt nok ikke ???
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 17:54 #8
det er nok fordi jeg ikke bruger Visual C#.NET som kompiler !!!
Avatar billede simonvalter Praktikant
29. august 2005 - 17:57 #9
det ved jeg så ikke noget om.
Avatar billede arne_v Ekspert
29. august 2005 - 19:40 #10
det bør nu virke uanset IDE

men hvorfor ikke bare:

using System;
using System.Runtime.InteropServices;

class MainClass
{
    [DllImport("msvcrt.dll")]
    public static extern int system(string cmd);
    public static void Main(string[] args)
    {
        Console.WriteLine("Hello world");
        system("CLS");
    }
}

?
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 22:33 #11
mange tak arne...det ligner meget vb.net !
læg et svar i dette :
http://www.eksperten.dk/spm/644041
Avatar billede arne_v Ekspert
29. august 2005 - 22:35 #12
det er bare et dirty hack til at kalde en C funktion fra C#
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 22:38 #13
kan man kalde andre funktioner (C) med dette ??
Avatar billede arne_v Ekspert
29. august 2005 - 22:40 #14
ja
Avatar billede arne_v Ekspert
29. august 2005 - 22:41 #15
et andet eksempel:

using System;
using System.Runtime.InteropServices;

public struct SYSTEMTIME
{
  public UInt16 Year ;
  public UInt16 Month ;
  public UInt16 DayOfWeek ;
  public UInt16 Day ;
  public UInt16 Hour ;
  public UInt16 Minute ;
  public UInt16 Second ;
  public UInt16 MilliSecond ;
}

class MainClass
{
    [DllImport("kernel32.dll")]
    private static extern bool SetSystemTime(ref SYSTEMTIME st);

    public static void Main(string[] args)
    {
        SYSTEMTIME st = new SYSTEMTIME();
        st.Year = 2003;
        st.Month = 9;
        st.Day = 29;
        st.Hour = 21;
        st.Minute = 0;
        st.Second = 0;
        SetSystemTime(ref st);
    }
}
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 22:42 #16
evt nogle steder man kan læse om det ??
Avatar billede arne_v Ekspert
29. august 2005 - 22:45 #17
teknikken er ret simpel

du konverterer argumenter passende og putter en DllImport på

det kan så være lidt hårdt arbejde at få det helt rigtigt, men det kommer med erfaring

bemærk at det kræver en DLL !
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 22:48 #18
ok mange tak....en sidste ting er at jeg har lavet et program i c++ der skriver noget til en txt fil...men jeg kunne godt tænke mig at få den til at skrive tiden og datoen til filen ?
Avatar billede arne_v Ekspert
29. august 2005 - 22:52 #19
se http://www.cppreference.com/stddate/ for dato og tid funktioner i C (og C++)
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 22:58 #20
det er lidt svært at finde fundt i kan du ikke bare give at eksempel på hvordan man udskriver tiden ???? plz !
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:02 #21
det behøver du ikke jeg har fundet ud af det:
#include <stdio.h>
#include <time.h>
#include <iostream>

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  printf ( "Current date and time are: %s", asctime (timeinfo) );
  system("pause");
  return 0;
}
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:03 #22
mange tak for svaret !
Avatar billede arne_v Ekspert
29. august 2005 - 23:03 #23
#include <time.h>
#include <stdio.h>

int main()
{
  time_t t;
  struct tm *ts;
  t=time(NULL);
  ts=localtime(&t);
  printf("It is %02d/%02d/%04d %02d:%02d",ts->tm_mday,ts->tm_mon,1900+ts->tm_year,ts->tm_hour,ts->tm_min);
  return 0;
}
Avatar billede arne_v Ekspert
29. august 2005 - 23:03 #24
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
  time_t t = time(NULL);
  cout << ctime(&t) << endl;
  char buf[33];
  strftime(buf,sizeof(buf),"%d-%m-%Y %H:%M:%S",localtime(&t));
  cout << buf << endl;
  return 0;
}
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:08 #25
dette virker ikke ???

#include <stdio.h>
#include <time.h>
#include <iostream>
#include <fstream>

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  printf ( "Current date and time are: %s", asctime (timeinfo) );
 
  ofstream fout("time.txt");
  fout << asctime (timeinfo);
  fout.close();
  cout << "Filen time.txt er nu skrevet";
  system("pause");
  return 0;
}
Avatar billede arne_v Ekspert
29. august 2005 - 23:12 #26
hvad sker der og hvad skulle der ske
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:14 #27
ok det er helt i orden mange tak ;)
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:21 #28
glem koden men i c# kan jeg sørme heller ikke finde ud af at skrive tiden (console app)
Avatar billede arne_v Ekspert
29. august 2005 - 23:24 #29
using System;

class MainClass
{
    public static void Main(string[] args)
    {
        DateTime dt = DateTime.Now;
        Console.WriteLine(dt.ToString("yyyyMMdd"));
    }
}
Avatar billede arne_v Ekspert
29. august 2005 - 23:24 #30
using System;
using System.Globalization;

class MainClass
{
    public static void Main(string[] args)
    {
        DateTime dt = DateTime.Now;
        Console.WriteLine(dt.ToString("ddd dd MMM yyyy"));
        Console.WriteLine(dt.ToString("dddd dd MMMM yyyy"));
        Console.WriteLine(dt.ToString("ddd dd MMM yyyy", new CultureInfo("en-US", false)));
        Console.WriteLine(dt.ToString("dddd dd MMMM yyyy", new CultureInfo("en-US", false)));
        Console.WriteLine(dt.ToString("ddd dd MMM yyyy", new CultureInfo("da-DK", false)));
        Console.WriteLine(dt.ToString("dddd dd MMMM yyyy", new CultureInfo("da-DK", false)));
    }
}
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:26 #31
Avatar billede arne_v Ekspert
29. august 2005 - 23:28 #32
using System;
using System.Runtime.InteropServices;

class MainClass
{
    [DllImport("kernel32.dll")]
    public static extern bool SetConsoleTitle(string title);
    public static void Main(string[] args)
    {
        SetConsoleTitle("Det virker");
    }
}
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:34 #33
jeg kan ikke rigtig finde ud af hvordan jeg skal indsætte den (i dette program) for den kommer med en fejl ???:

using System;
using System.Runtime.InteropServices;

namespace Smart
{
    class Class1
    {
        [DllImport("msvcrt.dll")]
        public static extern int system(string cmd);
        public static void Main(string[] args)

        {       
       
            int valg;
            double a, b, r, h, g;
            double c;
Avatar billede arne_v Ekspert
29. august 2005 - 23:37 #34
hvilken fejl ved hvilken linie ?
Avatar billede visualdeveloper Nybegynder
29. august 2005 - 23:39 #35
det var bare hvor jeg skulle indsætte det men det har jeg fundet ud af....
dette program skulle forresten skrive tiden til en txt fil men det virker ikke ????

#include <stdio.h>
#include <time.h>
#include <iostream>
#include <fstream>

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  printf ( "Current date and time are: %s", asctime (timeinfo) );

  ofstream fout("time.txt");
  fout << asctime (timeinfo);
  fout.close();
  cout << "Filen time.txt er nu skrevet";
  system("pause");
  return 0;
}
Avatar billede arne_v Ekspert
31. august 2005 - 21:07 #36
mystisk

dit program virker hos mig

(efter at jeg lavede en using namespace std for at få det til at compile)
Avatar billede visualdeveloper Nybegynder
02. september 2005 - 23:40 #37
det er også rigtigt....jeg så ikke lige at jeg havde glemt at bruge namespacet std; !

mange tak !
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester