社区
C语言
帖子详情
如何结束这个循环while(gets(name)!=NULL)
liu545454
2014-09-25 10:33:34
#include <stdio.h>
#define LEN 40
int main()
{
char name[LEN];
while(gets(name)!=NULL)
printf("***%s***\n",name);
return 0;
}
请问当输入什么时这个循环结束
...全文
848
6
打赏
收藏
如何结束这个循环while(gets(name)!=NULL)
#include #define LEN 40 int main() { char name[LEN]; while(gets(name)!=NULL) printf("***%s***\n",name); return 0; } 请问当输入什么时这个循环结束
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
brookmill
2014-09-26
打赏
举报
回复
引用 3 楼 liu545454 的回复:
除了 ctrl+z 没有其他更好的方式了吗?
除非改代码。gets只有两种情况返回NULL,出错或者EOF。 比如可以这样改代码,输入end就可以结束循环: while(gets(name)!=NULL && !strcmp(name, "end")) printf("***%s***\n",name);
赵4老师
2014-09-26
打赏
举报
回复
Ctrl+C
赵4老师
2014-09-26
打赏
举报
回复
Enter,Ctrl+Z,Enter
liu545454
2014-09-25
打赏
举报
回复
除了 ctrl+z 没有其他更好的方式了吗?
brookmill
2014-09-25
打赏
举报
回复
gets在遇到文件结束(EOF)的时候返回NULL 输入EOF的方法: windows: ctrl+z linux: ctrl+D
liu545454
2014-09-25
打赏
举报
回复
无论我输入什么 这个程序会一直运行 不会结束 除了ctrl+z ctrl+c
java项目之学生信息管理系统
package cn.com.dao.chivementdao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import cn.com.util.DBConnection; import cn.com.util.DBSql; import cn.com.vo.chivementvo.ChivementVo; public class ExamDao { private Connection conn = DBConnection.getConnectionOracle(); private ChivementVo examVo; public ExamDao() { } public ExamDao(ChivementVo examVo) { super(); this.examVo = examVo; } /** * 全部查询 */ public Object[][] selectAll() { Object date[][] =
null
; int max = 0; int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(DBSql.SELECT_ALL); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumberAll(DBSql.SELECT_ALL_COUNT)][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据学号查询 */ public Object[][] selectBySid() { Object date[][] =
null
; int max = 0; int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(DBSql.SELECT_BY_S_ID); ps.setInt(1, examVo.
getS
_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumber(DBSql.SELECT_BY_S_ID_COUNT, examVo .
getS
_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据组号查询 */ public Object[][] selectByGid() { Object date[][] =
null
; int max = 0; int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(DBSql.SELECT_BY_G_ID); ps.setInt(1, examVo.getG_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumber(DBSql.SELECT_BY_G_ID_COUNT, examVo .getG_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据课程号查询 */ public Object[][] selectByCid() { Object date[][] =
null
; int max = 0; int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(DBSql.SELECT_BY_C_ID); ps.setInt(1, examVo.getC_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumber(DBSql.SELECT_BY_C_ID_COUNT, examVo .getC_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { // System.out.println( examVo.getG_id()); date[i][j] = rs.getObject(j+1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据姓名模糊查询 * * @return */ public Object[][] selectByName() { Object date[][] =
null
; int max = 0; int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(DBSql.SELECT_BY_S_NAME); ps.setString(1, examVo.
getS
_name()); ps.setString(2, "%" + examVo.
getS
_name() + "%"); ps.setString(3, "%" + examVo.
getS
_name()); ps.setString(4, examVo.
getS
_name() + "%"); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumberByName(DBSql.SELECT_BY_S_NAME_COUNT, examVo.
getS
_name())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据课程名称模糊查询 * * @return */ public Object[][] selectByClassName() { Object date[][] =
null
; int max = 0; int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(DBSql.SELECT_BY_CLASS_NAME); ps.setString(1, examVo.getClass_name()); ps.setString(2, "%" + examVo.getClass_name() + "%"); ps.setString(3, "%" + examVo.getClass_name()); ps.setString(4, examVo.getClass_name() + "%"); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new Object[getnumberByName(DBSql.SELECT_BY_CLASS_COUNT, examVo.getClass_name())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.getObject(j + 1); } i++; } } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 修改选中学生的成绩 * */ public void updatSelectClass() { PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(DBSql.UPDATE_EXAM_BY_STUID); ps.setInt(1, examVo.getClassExamChivement()); ps.setInt(2, examVo.
getS
_id()); ps.setInt(3, examVo.getC_id()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } /** * 得到所有课程号和课程名 * * @return */ public String[] getClassNoName() { String[] classNoName =
null
; PreparedStatement ps =
null
; ResultSet rs =
null
; int j = 0; try { int i = getnumberAll(DBSql.SELECT_CLASS_NAME_COUNT); classNoName = new String[i + i]; ps = conn.prepareStatement(DBSql.SELECT_CLASS_NAME); rs = ps.executeQuery(); while (rs.next()) { classNoName[j] = rs.
getS
tring(1); classNoName[j + i] = rs.
getS
tring(2); j++; } } catch (SQLException e) { e.printStackTrace(); } return classNoName; } /** * 根据科目修改成绩 查询学号 姓名 成绩 * */ public void SelectClassStuName() { int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; int j = getnumberBySelectClassName( DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM_COUNT, examVo.getC_id()); int[] sNum = new int[j]; String[] sName = new String[j]; int[] classExam = new int[j]; try { ps = conn.prepareStatement(DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM); ps.setInt(1, examVo.getC_id()); rs = ps.executeQuery(); while (rs.next()) { sNum[i] = rs.getInt(1); sName[i] = rs.
getS
tring(2); classExam[i] = rs.getInt(3); i++; } } catch (SQLException e) { e.printStackTrace(); } examVo.setSid(sNum); examVo.setSname(sName); examVo.setClassExam(classExam); } /** * 根据科目修改成绩 查询学号 姓名 成绩 后修改成绩 * */ public void UpdateClassStuName() { // int i = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; int j = getnumberBySelectClassName( DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM_COUNT, examVo.getC_id()); try { ps = conn.prepareStatement(DBSql.UPDATE_CHIVEMENT_BY_CLASS); for(int i =0;i
getSid()[i]); ps.setInt(3, examVo.getC_id()); ps.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); } } /** * 全部查询获得行数 * * @return */ public int getnumberAll(String str) { int number = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(str); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return number; } /** * 根据学号 根据组号 根据课程号查询 获得行数 * * @return */ public int getnumber(String str, int i) { int number = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(str); ps.setInt(1, i); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return number; } /** * 根据姓名 课程名 查询 获得行数 * */ public int getnumberByName(String str, String i) { int number = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(str); ps.setString(1, i); ps.setString(2, "%" + i + "%"); ps.setString(3, "%" + i); ps.setString(4, i + "%"); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return number; } // /** // * 根据课程名查询 获得行数 // * // */ // // public int getnumberByClassName(String str, String i) { // int number = 0; // PreparedStatement ps =
null
; // ResultSet rs =
null
; // try { // ps = conn.prepareStatement(str); // ps.setString(1, i); // ps.setString(2, "%" + i + "%"); // ps.setString(3, "%" + i); // ps.setString(4, i + "%"); // rs = ps.executeQuery(); // rs.next(); // number = rs.getInt(1); // } catch (SQLException e) { // e.printStackTrace(); // } // return number; // } /** * * 根据课程名修改成绩获得行数 * * @param str * @param i * @return */ public int getnumberBySelectClassName(String str, int i) { int number = 0; PreparedStatement ps =
null
; ResultSet rs =
null
; try { ps = conn.prepareStatement(str); ps.setInt(1, i); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return number; } }
字符串输入输出函数
while(
gets
(name)!=
NULL
) 可检查文件是否结尾 while((ch=getchar())!=EOF)
gets
() 读取换行符并将其丢弃, f
gets
() 把换行符存字符串里,但每次显示字符串会显示换行符(不足之处)。f
gets
() 是为文件I/O而设计得,在处理键盘输入时就不如
gets
()那么方便。它需要第二个参数来说明最大读入字符数,如果这个
C语言实践总结
字符输入! 使用scanf必须判断EOF:while (scanf("%d %d",&a, &b)!= EOF)。因为系统将输入保存到一个文件中,因此需要判断文件的末尾而
结束
while
循环
。白痴的我在使用
gets
时,同样做了这样的判断while(EOF!=
gets
(name)),导致死
循环
输入,输出超限!
gets
的返回值是没有EOF的,输入成功返回字符串首地址,输入失败或遇到错误返回
NULL
,
数据结构代码
第一章 绪论P8 例: 计算f=1!+2!+3!+…+n!,用C语言描述。void factorsum(n)int n;{int i,j;int f,w;f=0;for (i=1;i〈=n;i++){w=1;for (j=1;j〈=i;j++)w=w*j;f=f+w;}return;}第二章 线性表P16【算法2.1 顺序表的插入】int Insert(Ele
c语言
gets
循环
输入字符串,【C语言日日练(十五)】字符串输入函数f
gets
、
gets
和scanf...
【C语言天天练(十五)】字符串输入函数f
gets
、
gets
和scanf引言:如果想把一个字符串读到程序中,必须首先预留存储字符串的空间,然后使用输入函数来获取这个字符串。读取字符串输入的第一件事是建立一个空间以存放读入的字符串。char *name;scanf("%s", name);这段代码虽然可能通过编译,但因为name可以指向任何地方,所以它的输入值可能覆盖以前name所指位置的值。解决办法...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章