Вопрос по С++

quant

yeah
Re: C#

а что в CSarp означает '?' - знак вопроса ?
вот четыре строки - что каждая означает и в какой из них ошибка ?
Int32? x2 = 5;
Int32 x3 = null;
Int32? x4 = null
Int32 x5 = x4 ?? 5;
 

LLC

New Member
Re: C#

а что в CSarp означает '?' - знак вопроса ?
вот четыре строки - что каждая означает и в какой из них ошибка ?
Int32? x2 = 5;
Int32 x3 = null;
Int32? x4 = null
Int32 x5 = x4 ?? 5;
Пропустил: 2-я строка - знак вопроса, 3-я - точка с запятой.
По вопросу ?? ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_csref/html/088b1f0d-c1af-4fe1-b4b8-196fd5ea9132.htm

-snap-
The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand.

A nullable type can contain a value, or it can be undefined. The ?? operator defines the default value to be returned when a nullable type is assigned to a non-nullable type. If you try to assign a nullable type to a non-nullable type without using the ?? operator, you will generate a compile-time error. If you use a cast, and the nullable type is currently undefined, an InvalidOperationException exception will be thrown.

For more information, see Nullable Types (C# Programming Guide).
-snap-

Кратко: оператор ?? определяет nullable тип для non-nullable типов.
 

zx

Member
Re: C#

оффтоп однако :(
для тех, кто уже нашел себя в шарпе.

 

r0mantik

Thinker
Re: C#. что вижу я.

"есть еще Макрософтовский фреймворк с открытыми сырцами.
Rotor называется"

поподробней пожалуста
 

zx

Member
Re: C#. что вижу я.

"есть еще Макрософтовский фреймворк с открытыми сырцами.
Rotor называется"

поподробней пожалуста


SSCLI: Shared Source Common Language Infrastructure

The Common Language Infrastructure (CLI) is the ECMA standard that describes the core of the .NET Framework. The Shared Source CLI (SSCLI), also known as Rotor, is a compressed archive of the source code to a working implementation of the ECMA CLI and the ECMA C# language specification, technologies at the heart of Microsoft’s .NET architecture. Since 2002, SSCLI has been used in scores of research and teaching projects around the world, enabling work in the areas of memory management, garbage collection, virtual object systems, just-in-time compilation, and code security, among others.

SSCLI 2.0, released in March 2006, adds full support for the latest CLI and C# 2.0 features, such as anonymous methods, anonymous delegates, and generics; BCL additions; Lightweight Code Generation (LCG); and stub-based dispatch.

SSCLI contains these technologies in source code form:
An implementation of the runtime for the Common Language Infrastructure (ECMA-335)
Compilers that work with the SSCLI for C# (ECMA-334) and JScript
Development tools for working with the SSCLI, such as assembler and disassemblers (ilasm, ildasm), a debugger (cordbg), metadata introspection (metainfo)
The Platform Adaptation Layer (PAL) used to port the SSCLI from Windows to other platforms
Build environment tools (nmake, build, and others)
Test suites used to verify the implementation
A rich set of sample code and tools for working with the SSCLI
 

alexmore

JuveFan
Re: Вопросик по "C"

Доделываю контрольную по С и не могу добить одно задание.
Помогите люди добрые
Прожку делаю по примеру. Как работает прожка почти разобрался, при компиляции ошибок не выдает, но не работает как нужно.
Масив структур.

Приклад 22. Створити масив структур для опису мотоциклів з полями: марка, завод - виробник, ціна, номер двигуна. Вивести в окремий файл всі данні про мотоцикли, вироблених на введеному з клавіатури заводі - виробнику та ті що мають 5-ти значний номер двигуна, що починається з заданої цифри.

Листинг
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 4
void main ()
{
struct motoc
{
char marka[15];
char zavod[15];
float cena;
char nomer_d[15];
}x[N];
FILE *f1,*fv;
char zadan_zavod[15],n;
int i;
float t;
clrscr();
f1=fopen("C:\\User\\otv.txt","w");
fv=fopen("C:\\User\\vh.txt","r");
printf("vvedite 4islo t=\n");
scanf("%f",&t);
for (i=0;i<N; i++)
{
fscanf(fv,"%s",&x.marka);
fscanf(fv,"%s",&x.zavod);
fscanf(fv,"%f",&x.cena);
fscanf(fv,"%s",&x.nomer_d);
}
printf ("Введіть заданий завод виробник=\n");
fflush(stdin);
scanf ("%s",&zadan_zavod);
printf ("Введіть задану початкову цифру в номері двигуна=\n");
fflush(stdin);
scanf ("%c",&n);
for (i=0;i<N;i++)
if((strcmp(x.zavod,zadan_zavod)==0)&& (x.nomer_d[0]==n) && (strlen(x.nomer_d)==5))
{
fprintf(f1,"марка=%s\n завод=%s\n цена=%f\n номер двигуна=%s", x.marka, x.zavod, x.cena, x.nomer_d);
printf("марка=%s\n завод=%s\n цена=%f\n номер двигуна=%s", x.marka, x.zavod, x.cena, x.nomer_d);
}
fclose(f1);
fclose(fv);
getch();
}

Смысл проги в том, чо есть масив структур. Масив задается в файле vh.txt. Из этого файла считываются данные, и сравниваются с данными ,которые вводятся с клавиатуры. Совпадающие данные выводятся на экран и записываются в файл otv.txt. Только у меня прога ничего не выводит. И вот у меня какой вопрос : как мне задать в файлике мою структуру. Толи сначала в строчку через пробел все марки мотоциклов, а затем в следующих цены... заводы..или в строчку каждую еденицу мото и через пробел характеристики? Как прожка будет данные считывать?

Заранее благодарен
 

GrAndSE

Тёмный
Модератор
Re: Вопросик по "C"

Только у меня прога ничего не выводит. И вот у меня какой вопрос : как мне задать в файлике мою структуру. Толи сначала в строчку через пробел все марки мотоциклов, а затем в следующих цены... заводы..или в строчку каждую еденицу мото и через пробел характеристики? Как прожка будет данные считывать?

Заранее благодарен
Я не могу понять, каким образом проверяется, выводит она что-то или нет, если я так понимаю данные не введены?
По тому как написана программа данные лучше всего размещать в файле так:
Код:
марка_мотоцикла1 завод1 цена1 номер1
марка_мотоцикла2 завод2 цена2 номер2
...
В принцыпе для самого С разницы нет в том, находятся ли данные в одной строчке или вразных, но как по мне, так логично, тчобы данные о каждом новом мотоцикле находились в отдельной строке.
 

alexmore

JuveFan
Re: Вопросик по "C"

Я не могу понять, каким образом проверяется, выводит она что-то или нет, если я так понимаю данные не введены?
По тому как написана программа данные лучше всего размещать в файле так:
Код:
марка_мотоцикла1 завод1 цена1 номер1
марка_мотоцикла2 завод2 цена2 номер2
...
В принцыпе для самого С разницы нет в том, находятся ли данные в одной строчке или вразных, но как по мне, так логично, тчобы данные о каждом новом мотоцикле находились в отдельной строке.
Спасибо за ответ. Данные были введены ,только не
марка_мотоцикла1 завод1 цена1 номер1
марка_мотоцикла2 завод2 цена2 номер2
а так:

марка1 марка2 марка 3...
цена1 цена2 цена3

Думал может просто файл не открывает, добавил цыкл с проверкой на открытие. Если fv=0, то вывести сообщение об ошибке. Не ругнулось. Попробуем немного по другому разместить масив. Еще раз спасибо.
 

GrAndSE

Тёмный
Модератор
Re: Вопросик по "C"

марка1 марка2 марка 3...
цена1 цена2 цена3
Пожалуйста.
Для такого случая лучше писать чтение из файла таки образом:
Код:
for (i=0;i<N; i++)
     fscanf(fv,"%s",&x[i].marka);
for (i=0;i<N; i++)
     fscanf(fv,"%s",&x[i].zavod);
for (i=0;i<N; i++)
     fscanf(fv,"%f",&x[i].cena);
for (i=0;i<N; i++)
     fscanf(fv,"%s",&x[i].nomer_d);
А то вы в одно проходе цыкла считывали информацию об одньй записи полностью. А в таком менее красивом случае, считывается в одной проходе цикла только одно поле записи (структуры), являющейся элементом массива. Потому необходимо аж целых четыре цикла..
 

alexmore

JuveFan
Re: Вопросик по "C"

Спасибо огромное за помощь!
Все получилось ;)
 
Зверху