Jeg har skrevet et lille stykke C++-kode, der ikke gør som jeg forventer. Jeg har forsøgt at oversætte det med både GUNs og VS2010s C++-oversætter.

#include <iostream>
#include <iomanip>

int main()
{
  int x = 1;
  for( int i = 0; i < 100; ++i );
    // Do we want to increment x???????????/
    ++x;
  std::cout << x << std::endl;
}

Hvad forventer jeg bliver udskrevet? Hvad bliver udskrevet? Hvorfor?

asked 10 Sep '12, 15:37

Jakob's gravatar image

Jakob
379110
accept rate: 55%


1, 2, fornuftig compiler

link

answered 11 Sep '12, 15:19

silas's gravatar image

silas
36
accept rate: 100%

Det udskriver 2, idet din for-loop har en tom krop (statementet ';'). Derfor bliver x kun inkrementeret en enkelt gang, således at tallet to udskrives.

Jeg kan ikke svare dig på hvad du forventede blev udskrevet -- formentlig tallet 101.

link

answered 11 Sep '12, 20:14

IdolfHatler's gravatar image

IdolfHatler
3121111
accept rate: 75%

Jeg forventede 1, men hvorfor?

(11 Sep '12, 21:02) Jakob Jakob's gravatar image
1

trigraphs findes ikke, de er en fantasi-konstruktion oppe i dit hoved.

(11 Sep '12, 22:21) IdolfHatler IdolfHatler's gravatar image

Nu er der allerede svaret på spørgsmålene, så dem giver jeg mig ikke i kast med. Her er i stedet et link til lidt læsning: http://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C.

link

answered 14 Sep '12, 02:42

runejuhl's gravatar image

runejuhl
1045
accept rate: 50%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×121
×2
×1

Asked: 10 Sep '12, 15:37

Seen: 794 times

Last updated: 14 Sep '12, 02:42

powered by OSQA