Если вы попробуете while( fscanf( f, "%27[^\n\r]", cLine ) == 1 )
, у вас может быть немного больше удачи. Три изменения из вашего оригинала:
27
здесь, и, к сожалению, семейство scanf()
требует ширины поля буквально в в строке формата и не может использовать механизм *
, который printf()
может передать значение в s
в строке формата - %[
- спецификатор формата для «всех символов, совпадающих или не соответствующих набору», и набор заканчивается ]
сам по себе При этом вы получите тот же результат с меньшей болью, используя fgets()
, чтобы читать столько строк, сколько поместится в вашем буфер.
Вам необходимо установить его на C: \ Sun \ SDK \ jdk
(Предполагается, что именно там установлен JDK - это не по умолчанию) - Не помещайте \ bin в C: \ Sun \ SDK \ jdk \ bin
.
Если ваше приложение запускается только тогда, когда вы вошли в систему как текущий пользователь, поместите его в пользовательские переменные. Если оно должно запускаться для всех пользователей вашей системы, поместите его в Системные переменные.
Вам также может потребоваться добавить % JAVA_HOME% \ bin
в путь (также это зависит от того, запускаете ли вы его от одного пользователя или от всех пользователей, включая Систему)
http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html
Панель управления > Java, вкладка Java, нажмите кнопку View. В Runtime Parameters поставьте:
-Djava.home=YOUR_PATH_HERE
Или при выполнении Java вы можете добавить этот переключатель командной строки в команду:
java -Djava.home=PATH SomeJavaApp
У меня сработало добавление % JAVA_HOME% \ bin
в переменную среды Path с переменной среды JAVA_HOME
, указывающей на папку jdk
.
Запустите Eclipse от имени администратора.
Это решило мою проблему. Я все еще пытаюсь понять логику этого.