请教peek()与eof()的用法 请教peek注塑遇到的几个问题

\u8bf7\u6559java\u4e2dsetUI\u7684\u7528\u6cd5

java\u4e2dsetUI\u7684\u7528\u6cd5\uff1a
\u8bed\u6cd5\uff1apublic void setUI(ComboBoxUI ui)

\u4e3e\u4f8b\uff1a

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.plaf.ComboBoxUI;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicArrowButton;
import javax.swing.plaf.basic.BasicComboBoxUI;

public class Main {

public static void main(final String args[]) {
final String labels[] = { "A", "B", "C", "D", "E" };
JFrame frame = new JFrame("Popup JComboBox");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JComboBox comboBox = new JComboBox(labels);
comboBox.setUI((ComboBoxUI) MyComboBoxUI.createUI(comboBox));
frame.add(comboBox, BorderLayout.NORTH);

frame.setSize(300, 200);
frame.setVisible(true);

}

static class MyComboBoxUI extends BasicComboBoxUI {
public static ComponentUI createUI(JComponent c) {
return new MyComboBoxUI();
}

protected JButton createArrowButton() {
JButton button = new BasicArrowButton(BasicArrowButton.EAST);
return button;
}
}
}

\u6a21\u5177\u4e00\u822c\u7528140~180\u2103
\u901a\u5e38\uff0c\u6a21\u5177\u6e29\u5ea6\u7684\u5347\u9ad8\u4f1a\u51cf\u5c11\u5851\u6599\u5728\u578b\u8154\u6668\u6709\u51b7\u51dd\u5c42\uff0c\u4f7f\u7194\u878d\u6750\u6599\u5728\u578b\u8154\u5185\u66f4\u6613\u4e8e\u6d41\u52a8\uff0c\u4ece\u800c\u83b7\u5f97\u66f4\u5927\u7684\u96f6\u4ef6\u91cd\u91cf\u548c\u66f4\u597d\u7684\u8868\u9762\u8d28\u91cf\u3002\u540c\u65f6\uff0c\u6a21\u5177\u6e29\u5ea6\u7684\u63d0\u9ad8\u8fd8\u4f1a\u4f7f\u96f6\u4ef6\u5f20\u529b\u5f3a\u5ea6\u589e\u52a0\u3002
\u52a0\u5165\u6ed1\u77f3\u7c89\u53ea\u4f1a\u4f7f\u8868\u9762\u5149\u6cfd\u66f4\u5dee\u2026\u2026\u6210\u54c1\u5f3a\u5ea6\u66f4\u5dee\u2026\u2026

fin.peek() 每次读一个元素进来
读回的不是EOF,则存在读缓冲器里
rdbuf()->sgetc()

while( fin.peek()!=EOF ) {
如果temp.txt有4行,第4行有新行符号没别的东西,
则循环4次,遇到 EOF 退出
第4次 读缓冲器里的内容是第三次读入的
所以 多一个 cc

eof 是文件结束符号, 编码是 ffff

temp.txt
aa
bb
ccEOF
--------------

aa
bb
cc
EOF
----------
前者3行,后者4行

改为:
while( fin.peek()!=EOF ) {
ch[0] = '\0';
fin >> ch;
cout << ch;
}
就好了。

peek调用形式为cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的字符是文件结束符,则函数值是EOF(-1)

例如

#include <iostream>
using namespace std;
int main () {
char c;
int n;
char str[256];
cout << "Enter a number or a word: ";
c=cin.peek();
if ( (c >= '0') && (c <= '9') )
{
cin >> n;
cout << "You have entered number " << n << endl;
}
else
{
cin >> str;
cout << " You have entered word " << str << endl;
}
return 0;
}

(以上参考资料为百度百科peek函数)

易于理解其用法


C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。

例如:

#include <stdio.h>
int main(void)
{
int n,i;
int array[25];
while (scanf("%d",&n),n!=EOF) //while(scanf("%d",&n)!=EOF)
{
for (i=0; i<n; i++)
scanf("%d",array+i);
for (i=0; i<n; i++)
printf ("%d ",array[i]);
}
return 0;
}

(以上参考资料为百度百科eof)

不懂情追问。

相关函数feof等



  • C璇█鍑芥暟鍙傝冩墜鍐岀殑鐩綍
    绛旓細7.28 peek()鈥斺斾粠瀛樺偍鍗曞厓璇讳竴涓瓧鍑芥暟1057.29 peekb()鈥斺斾粠瀛樺偍鍗曞厓璇讳竴涓瓧鑺傜殑鍑芥暟 1067.30 poke()鈥斺斿瓨涓涓瓧鍒扮粰瀹氬瓨鍌ㄥ崟鍏冨嚱鏁 1087.31 ...10.6 eof()鈥斺旀枃浠舵娴嬬粨鏉熷嚱鏁 20910.7 fdopen()鈥斺旇繛鎺ユ枃浠跺彞鏌勫嚱鏁 21010.8 filelength()鈥斺旀枃浠跺瓧鑺傛暟缁熻鍑芥暟21110.9 getftime鈥斺旇幏鍙栨枃浠舵椂闂村嚱鏁...
  • 鎴戠敤c++瀵规枃浠跺啓鍏ヤ负浠涔堟病鏈変换浣曟搷浣
    绛旓細鏇挎崲杩欑宸ヤ綔瀵规祦鏉ヨ鏄瘮杈冮夯鐑︾殑 鍦ㄥ啓鍏ユā寮鍜璇诲彇妯″紡鍒囨崲鐨勬椂鍊欓渶瑕佺‘瀹氭枃浠舵寚閽堢殑浣嶇疆 peek鏄瑙堜竴涓嬩笅涓涓瓧绗︼紝鎵浠ヤ綘鐢ㄥ湪姝ゅ鏄笉姝g‘鐨 int pos=0;while(/*!file.eof()&&*/file.good()){ pos = file.tellg();file>>mes1;if(mes1 == p){ i++;file.seekp(pos);file<<"*";c...
  • 鏂囦欢缁撴潫绗EOF
    绛旓細EOF <-- 娉ㄦ剰锛岃繖涓椂鍊欙紝in.eof()杩樹笉杩斿洖1锛屽洜涓篿n杩欎釜杈撳叆娴佽繕娌℃湁璇籈OF杩欎釜鏂囦欢缁撴潫绗︼紝浣嗘槸in鏈変竴涓嚱鏁peek()鏄褰撳墠鎸囬拡鎸囧悜鐨勮繖涓綅缃殑绗﹀彿鐨勩傞偅涔堝鏋滅敤in.peek() == EOF 鏉ユ渶涓哄垽鏂殑鏍囧噯灏辨瘮杈冨ソ浜嗐傛ゼ涓荤殑渚嬪瓙鍐欐垚 while(in.peek() != EOF){ in>>temp;cout<<temp<<endl;...
  • 甯繖鐪嬩釜c++灏忕▼搴
    绛旓細鍥犳鍙互鐢ㄥ涓嬫柟娉曪細鎶妛hile(!infile.eof())杩欎竴琛屾敼鎴愶細while(infile.peek()!=EOF)鍙敼杩欎竴琛屽嵆鍙傛ゼ涓婄殑鍥炵瓟宸煟锛'\0'灏辨槸0涓嶣OOL涓殑FALSE绛夋晥銆備笉淇′綘鐢–HAR鍙橀噺 璧嬪肩湅鐪嬨傝繕鏈夊悗闈㈢敤瀹岋紝搴旇璋冪敤杩欎袱涓璞$殑CLOSE鍑芥暟锛屾妸浠栦滑涓庢枃浠剁殑鍏宠仈鍘绘帀銆備笉鐒跺湪鍐欐椂鏈夐棶棰橈紝涓嶈繍琛屽湪涓涓椂娈靛悓鏃...
  • C++fstream闂,濡備綍鍒ゆ柇涓涓枃浠舵槸鍚︿负绌
    绛旓細鐢peek()鍑芥暟璇曟帰涓涓嬫枃浠剁殑绗竴涓瓧绗︽槸鍚︿负EOF锛沠seek鍒版枃浠跺熬鐒跺悗ftell妫鏌ユ槸鍚︿负0锛涚敤Win32 API GetFileSize()
  • C++閲屾庝箞妫鏌ユ枃浠跺唴瀹规槸鍚︿负绌
    绛旓細鍏坒getc()锛岀劧鍚巉eof()涓嶈涔堬紵鏂规硶涓锛歜ool is_empty(std::ifstream& pFile){ return pFile.peek() == std::ifstream::traits_type::eof();} 鏂规硶浜岋細inFile.seekg(0, ios::end);if (inFile.tellg() == 0) { // ...do something with empty file...} http://stackoverflow.com/...
  • EOF 鍒板簳鏄粈涔,C#涓兘涓嶈兘璇诲埌瀹,濡備綍鍒ゆ柇
    绛旓細} //杈撳嚭缁撴潫浠ュ悗Peek鐨勫 Console.WriteLine(sr.Peek()); } Console.ReadKey(); } }C#涓病鏈EOF锛屽彲浠ョ敤peek鏉ョ‘瀹氫綘read鐨勬枃浠舵槸鍚︾粨鏉熶簡锛屽鏋滅粨鏉熶簡浼氳繑鍥瀒nt鍨 -1銆
  • c++閲岃鍐欐枃浠跺嚱鏁癷_file.good()浣跨敤闂,浠g爜濡備笅
    绛旓細杩欐槸涓涓緢缁忓吀鐨勯棶棰樹簡銆倃hile(i_file.good())鍜while (!i_file.eof())瀛樺湪鍚屾牱鐨勯棶棰橈紝浣犲埌缃戜笂鎼滀竴涓嬧淐/C++鏂囦欢涔媏of()鈥濓紝灏辨槑鐧芥庝箞鍥炰簨浜嗐傛敞鎰忔渶鍚庝竴娈佃瘽锛氣2. 璇诲彇鏂囦欢杩囩▼涓紝璇诲彇闈瀋har鍨嬫椂锛屼娇鐢peek鍒ゆ柇鏂囦欢灏惧皢涓嶅啀閫傜敤锛屽惊鐜垽鏂潯浠跺簲鏀圭敤>>鎿嶄綔绗﹁繘琛岃鍙栵紝鑻ヨ鍏har鍨...
  • 姹侰++澶х缂栦竴涓▼搴: n涓鐢熻冨畬闈㈠悜瀵硅薄绋嬪簭璁捐鏈熸湯鑰冭瘯,鑰佸笀璇勫嵎...
    绛旓細include <iostream>#include <fstream>#include <string>using namespace std;class student{public:int id;string name;unsigned score;};int main(){ifstream ifs("student.txt");if(ifs.fail()||(ifs.peek() == EOF))return 1;student* stu[1024]={NULL};int i = 0;while(!ifs.eof()...
  • 鏂囦欢鎿嶄綔
    绛旓細鏄繖鏍风殑锛宨str.get(ch);杩欎釜璇彞宸茬粡鎶婁竴涓瓧绗﹁杩涙潵浜嗭紝istr>>a;杩欎釜璇彞鍙堣浜嗕竴娆°傚氨鏄锛屽綋ch涓1鎴2鎴3鎴4鎴5鏃讹紝a鐨勫煎叾瀹炴槸1鎴2鎴3鎴4鎴5鍚庨潰鐨勫瓧绗︿簡銆傚簲璇ユ敼涓篴=ch-'0';杩樻湁锛屾崲琛岀涔嬬被鐨勫瓧绗︿篃浼氳杩涘幓锛屼綘杩樿鎺掗櫎瀹冧滑 ...
  • 扩展阅读:一秒拍照答题 ... exercise doing sth ... 学法减分答案扫一扫免费 ... 为什么医生不推荐peek ... keep off the grass ... xsin 4xdx ... 搜题拍照秒出答案 ... 德语翻译器 ... 成人本科报考cet ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网