Вам нужно инициализировать переменную значениями по умолчанию. Либо вы можете инициализировать переменные там, где вы их определили, либо использовать их, как показано ниже:
public class Users ... {
...
public Users() {
Users("","",false) // "" or null for String
}
...
}
Кроме того, добавьте реализуемый Serializable в вашу модель.
Используйте '\r' и завершите Вашу строку с '\0'.
Кроме того, Вы могли бы попытаться использовать getche (), чтобы дать визуальное эхо пользователю и сделать некоторые другие общие исправления:
#include <stdio.h>
#include <conio.h>
#define MAX_NAME_LENGTH 20
int main()
{
char ch, name[MAX_NAME_LENGTH];
int i=0;
clrscr();
printf("Enter a string:");
while ( ((ch=getche())!='\r') && (i < MAX_NAME_LENGTH - 1) )
{
name[i]=ch;
i++;
}
name[i] = '\0';
printf("%s\n",name);
return 0;
}
Попробуйте \r вместо \n
\n является символом новой строки (0x0A), или 10 десятичных чисел, \r является символом возврата carrige (0x0D) или 13 десятичных чисел.
Клавиша Return является возвратом carrige.
в некоторой системе новая строка является "\r\n" возвратом каретки (входят), "\r"
Это вызвано тем, что клавиша Return на Вашей клавиатуре представлена внутренне как '\r' не '\n'. Для того определенного примера для работы необходимо было бы захватить '\r' вместо этого.
Введение на самом деле "\r\n" (возврат каретки и перевод строки) в Windows. getchar () возвратит '\n', я думаю.
Я думаю, что было бы лучше просто использовать:
scanf("%19s", name);
вместо getch вещи.
Это зависит от Вашей системы. Также необходимо знать, что getch () это - часть Стандарта Проклятий XSI, выпущенного X-Open или OpenGroup и не связанное с Borland определенный conio.h заголовок.
Необходимо использовать getchar (3) или getc (3), который все они принадлежат стандарту ISO/IEC 9899:1990. Оба вызова получают всего один байт от терминала/консоли управления или входного потока, соответственно.
При вызове их от платформы Windows Вы получаете с клавишей Enter, '\r', '\n' последовательность, вместо просто '\n'. Затем необходимо создать цикл вокруг getchar (3) или getc (3) вызовы. Кроме того, вызов к fgets (3) по stdin работал бы для получения '\r', '\n' упорядочивают.
Другая точка, то, что некоторые потребности платформ сбрасывают stding поток, затем необходимо применить сброс (3) вызов к stdin потоку.
fgets (3) и сброс (3) принадлежит стандарту ISO/IEC 9899:1990.